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

标签 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

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

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

最佳答案

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

在我的开发机器上设置USE_X_SENDFILE = False后,它现在可以工作了。我一定是忘记将此配置更改 checkin 存储库,这样我就没有注意到与之前的差异。

关于python - 重新安装计算机后 Flask 不再提供静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32348515/

相关文章:

python - Flask Python 模型验证

无需循环导入的 Python 类型提示

python - 使用 pip3 卸载 Python 包

python - 如何覆盖 Django 中模型的 __new__ 元类方法

python - SQLAlchemy 更新多个 WHERE 条件

python - 如何从 QTableWidget 中获取选定的组合框值?

python - 将 numpy 数组格式化为对齐的文本列

python - 在 Pandas 中高效地进行行间计算

python - Flask uWSGI - 导入错误 : No module named request

javascript - 如何动态生成 Blockly 下拉菜单的内容?