Django ManifestStaticFilesStorage 未加载正确的静态文件

Sam*_*amy 5 django amazon-s3 django-storage

我使用的组合django-storages,并ManifestStaticFilesStorage从服务器静态文件和媒体S3

class StaticStorage(ManifestFilesMixin, S3BotoStorage):
    location = settings.STATICFILES_LOCATION
Run Code Online (Sandbox Code Playgroud)

当我运行时,collectstatic我可以JS在 S3 上看到带有正确时间戳的文件的最新版本。

我还可以看到staticfiles.json清单中引用了该文件。

但是在浏览器中查看该站点时,我仍然看到旧的JS被拉下,而不是在manifest

可能出什么问题了?

Man*_*Tai 1

您可以阅读这篇文章以获取更多信息。简而言之:

默认情况下,staticfiles.json 将驻留在 STATIC_ROOT 中,这是收集所有静态文件的目录。我们将所有静态资产托管在 S3 存储桶上,这意味着默认情况下 staticfiles.json 最终会同步到 S3。

因此,如果您staticfiles.json被缓存,您的静态文件将是旧的。

有两种方法可以解决此问题:

  • staticfiles.json就像您已经完成静态文件一样进行版本控制
  • 保留staticfiles.json在本地而不是S3