我将django-storagesManifestStaticFilesStorage的组合用于服务器静态文件和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

09-25 18:27