我将django-storages
和ManifestStaticFilesStorage
的组合用于服务器静态文件和S3
中的媒体。
class StaticStorage(ManifestFilesMixin, S3BotoStorage):
location = settings.STATICFILES_LOCATION
当我运行
collectstatic
时,可以在S3上看到带有正确时间戳的最新版本的JS
文件。我还可以看到
staticfiles.json
清单中引用了该文件。但是,在浏览器中查看站点时,我仍然看到旧的
JS
被拉下来,而不是manifest
中的那个可能出什么问题了?
最佳答案
您可以阅读this post以获得更多信息。简而言之:
默认情况下,staticfiles.json将驻留在STATIC_ROOT中,即
收集所有静态文件的目录。我们托管所有
S3存储桶上的静态资产,默认情况下表示staticfiles.json
最终将被同步到S3。
因此,如果您的staticfiles.json
被缓存,则静态文件将是旧文件。
有两种方法可以解决此问题:
对staticfiles.json
进行版本化,就像处理完静态文件一样
将staticfiles.json
保留在本地而不是S3