Heroku的+ S3 + Django的:静态文件缓存不(Heroku + S3 + Django

2019-10-18 16:44发布

目前有部署在Heroku从S3加载的静态文件的项目。 我使用博托/ Django的存储来管理我的S3的内容,但如果我叫了同样的观点或重复加载相同页面,所有的图像/静态内容加载两次,不被缓存。

我已经放在AWS_HEADERS = { 'Cache-Control': 'max-age=2592000', }

在我的settings.py ,但原因似乎在他们的网址完全相同的图像(创制+装载两次)有不同的签名? 我试过多次头,但是浏览器似乎并不想缓存它,而是加载它们所有每次。

Answer 1:

尝试设置AWS_QUERYSTRING_AUTH = False 。 然后生成的URL将始终是相同的(公共)URL。 默认的ACL在S3BotoStoragepublic-read ,这不应该再变。

两件事情不要忘记:

  • 也许你想添加public, max-age=XXX ,那么公共代理也可以缓存你的内容?
  • 当您希望浏览器缓存那么久,你应该记住的是,文件名的变更时,内容改变。 一个解决办法是S3BotoStorage与Django-结合CachedStaticFilesStorage (见这里 ,我却用它没有单独的缓存后端)


文章来源: Heroku + S3 + Django: Static Files not Cached