2013-09-30 87 views
1

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

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

在我settings.py,但原因似乎完全一样的图像(刷新+装载两次)有不同的签名在他们的网址是什么?我试过了多个头,但浏览器似乎并不想缓存它,而是每次都加载它们。

回答

1

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

两件事情,不要忘记:

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