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 显示正确的映射,仍会获取旧的静态文件的主要内容,如果未能解决你的问题,请参考以下文章