12

我的问题的症状几乎完全符合这个问题:更改的静态文件被裁剪/填充到新的大小并提供旧的 - Fedora

每当我对我的静态文件(例如 .js 和 .css)进行更改时,这些更改不会显示在提供的文件中。但是,如果我的更改导致文件更改长度,则提供的文件确实与新长度匹配:

  • 如果我从静态文件中的任何位置删除字符,则提供的文件最后会被那么多字符修剪。
  • 如果我将字符添加到静态文件中的任何位置,则提供的文件最后会填充那么多 �(即 U+FFFD)字符。

链接答案不能解决我的问题的原因是我没有使用 Apache。我正在为 Heroku 编写一个 Python Web 应用程序,所以我使用的是 gunicorn 和 Flask(因此也使用了 Werkzeug)。链接的答案说在 Apache 中禁用 sendfile 解决了这个问题,所以我尝试根据这个页面将 'USE_X_SENDFILE' 变量设置为 False ,但它没有帮助。我还将 'SEND_FILE_MAX_AGE_DEFAULT' 设置为 1 以进一步尝试防止发生某种缓存,但这也无济于事。

如果不是很明显,我真的对配置网络服务器一无所知,所以在用完相关的谷歌点击后,我不知道是什么原因造成的。帮助?

4

2 回答 2

4

Virtualbox 讨厌 sendfile。如果您将其关闭,它应该可以工作。

例如在 nginx 中,您需要添加sendfile: off;. 在 Apache 中,它只是EnableSendfile off.

于 2015-08-21T13:59:51.017 回答
2

最后发现这可能是由 VM 问题引​​起的。有问题的代码位于 Windows 驱动器上,但在通过共享目录访问代码的 Linux VM 中提供服务。重新安装共享似乎可以解决问题(尽管不一定可靠)。

于 2013-09-02T14:36:20.427 回答