首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么CherryPy静态文件下载如此缓慢?

为什么CherryPy静态文件下载如此缓慢?
EN

Stack Overflow用户
提问于 2012-08-23 04:47:51
回答 1查看 1.1K关注 0票数 4

如果我在CherryPy中挂载一个静态目录,如下所示:

代码语言:javascript
复制
wwwroot_config = { '/': 
                      { 'tools.staticdir.on': True, 
                        'tools.staticdir.dir': '/path/to/dir' } }

cherrypy.tree.mount(root, '/', config = wwwroot_config)

从该目录下载文件的速度非常慢。

但是,如果我创建自己的WSGI应用程序...

代码语言:javascript
复制
self.wsgi_server = wsgiserver.CherryPyWSGIServer((self.bindaddress, self.port), self.download_file, numthreads = 1)

使用self.download_file,基本上包含:

代码语言:javascript
复制
return serve_file(theFile, "application/x-download", "attachment", os.path.basename(theFile), debug = True)

我得到的速度要快4-5倍。

然而,这种方式并不灵活,因为serve_file添加到请求的头部(比如range头部和内容长度)不会在响应中返回--我必须自己来做。

有什么我可以做的使第一种方法更快吗?

EN

回答 1

Stack Overflow用户

发布于 2014-11-05 02:22:42

我以前也遇到过同样的问题,但据我所知只在Windows机器上。你在Windows上运行CherryPy吗?CherryPy 3.5.0中似乎有一个bug,它为静态文件返回了错误的Content-Length头部,这会导致浏览器闲置,等待更多不存在的字节。

我还没有详细研究过这个问题,但是您可能希望检查服务器发送的Content-Length头部,看看它是否与静态文件的实际大小匹配。临时解决方法可能是手动设置(或删除)“before_handler”挂钩中的Content-Length报头。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12081193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档