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

时间:2013-09-30 21:26:46

标签: django heroku amazon-s3 boto django-storage

目前在Heroku上部署了一个项目,其中包含从S3加载的静态文件。我正在使用boto / django-storage来管理我的S3内容,但是如果我调用相同的视图或重复加载相同的页面,则所有图像/静态内容都会加载两次并且不会被缓存。

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

在我的settings.py中,但原因似乎相同的图片(刷新+加载两次)在其网址中有不同的签名?我已经尝试了多个标题,但浏览器似乎并不想缓存它,而是每次都加载它们。

1 个答案:

答案 0 :(得分:1)

尝试设置AWS_QUERYSTRING_AUTH = False。然后生成的URL将始终是相同的(公共)URL。 S3BotoStorage中的默认ACL为public-read,不应更改。

两件事不要忘记:

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