我的问题的症状非常符合这个问题:Changed static files are cropped/padded to the new size and served the old - Fedora
每当我对静态文件(例如 .js 和 .css)进行更改时,这些更改都不会显示在提供的文件中。但是,如果我的更改导致文件更改长度,则提供的文件确实与新长度匹配:
链接的答案不能解决我的问题的原因是我没有使用 Apache。我正在为 Heroku 编写一个 Python Web 应用程序,所以我使用的是 gunicorn 和 Flask(因此是 Werkzeug)。链接的答案说在 Apache 中禁用 sendfile 解决了这个问题,所以我尝试将 'USE_X_SENDFILE' 变量设置为 False,根据 this page ,但这没有帮助。我还将“SEND_FILE_MAX_AGE_DEFAULT”设置为 1 以进一步尝试防止发生某种缓存,但这也无济于事。
如果不是很明显,我真的对配置网络服务器一无所知,因此在用完相关的 Google 搜索结果后,我不知道是什么原因导致了这种情况。帮助?
最佳答案
Virtualbox hates sendfile.如果您将其关闭,它应该可以工作。
例如在 nginx 中,您需要添加 sendfile: off;
.
在 Apache 中,它只是 EnableSendfile off
.
关于caching - 服务器正在提供旧版本的静态文件,但经过修剪或填充以匹配新版本的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17460463/