ManifestStaticFilesStorage - 即使 staticfiles.json 显示正确的映射,仍会获取旧的静态文件

Posted

技术标签:

【中文标题】ManifestStaticFilesStorage - 即使 staticfiles.json 显示正确的映射,仍会获取旧的静态文件【英文标题】:ManifestStaticFilesStorage - still fetching old static file even when staticfiles.json shows the right mapping 【发布时间】:2018-01-30 16:07:05 【问题描述】:

我正在使用 ManifestStaticFilesStorage。在执行collectstatic 并将文件移动到 prod 之后,我仍然看到旧的 css 文件(带有旧的 MD5 哈希字符串)正在被获取。

settings.py:

STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'

在 prod 上,我可以看到 staticfiles.json 显示正确的(新)css 文件,但是当我从网页执行“查看源代码”时,我仍然可以看到旧的 css 正在被获取。

我可能错过了什么?

【问题讨论】:

【参考方案1】:

移动文件后在 prod 上重新启动 Django。

(我不知道为什么需要这样做,但这是唯一有效的方法)

【讨论】:

我不是因为 django 在启动期间将 staticfiles.json 文件的内容缓存在内存中。它用于快速查找% static % 标记中每个静态文件的散列文件名。【参考方案2】:

我遇到了同样的问题,重启 gunicorn 对我有帮助

【讨论】:

以上是关于ManifestStaticFilesStorage - 即使 staticfiles.json 显示正确的映射,仍会获取旧的静态文件的主要内容,如果未能解决你的问题,请参考以下文章