重新安装计算机后,Flask不再提供静态文件

时间:2015-09-02 08:45:14

标签: python flask python-3.4

我有一个基于Flask的python应用程序似乎运行正常。重新安装我的开发笔记本电脑并且不更改我的git存储库中的任何内容后,Flask应用程序现在不再提供静态文件。当我启动我的开发服务器时,应用程序启动并且服务器日志告诉我一切正常运行。我的应用程序的主要HTML正在生成并正确提供,但加载静态文件(CSS,JS,图像,...)不成功。 Chrome告诉我,由于此错误,文件全部不可用:ERR_CONTENT_LENGTH_MISMATCH

服务器日志不表示任何内容:

127.0.0.1 - - [02/Sep/2015 10:15:47] "GET /login?next=%2F HTTP/1.1" 302 -
127.0.0.1 - - [02/Sep/2015 10:15:47] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [02/Sep/2015 10:15:47] "GET /static/js/vendor.js HTTP/1.1" 200 -
127.0.0.1 - - [02/Sep/2015 10:15:48] "GET /static/css/app.css HTTP/1.1" 200 -
127.0.0.1 - - [02/Sep/2015 10:15:48] "GET /static/resources/ispot-logo-69x24.png HTTP/1.1" 200 -

正如您所看到的,所有静态文件请求都是在没有错误和HTTP 200 OK的情况下提供的。

AFAIK,我已经像以前一样设置了开发笔记本电脑。

我对此问题感到非常困惑,因为我找不到任何错误消息或提示在哪里查找问题。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

使用curl查看原始响应的提示是金色的。我的两个浏览器都隐藏了这样一个事实:我已经将Flask配置为使用sendfile机制(使用USE_X_SENDFILE = True)。只有在针对URL运行详细curl之后,我才能确定这是导致问题的原因。它在生产环境中工作,因为Apache配置正确,但Flask / Werkzeug Web服务器不支持sendfile功能。

在我的开发机器上设置USE_X_SENDFILE = False后,它正在运行。我一定忘记将这个配置更改检入到仓库中,这样我才注意到之前的差异。