1

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

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

在我的settings.py,但原因似乎相同的确切图像(刷新+加载两次)在其 URL 中具有不同的签名?我尝试了多个标头,但浏览器似乎不想缓存它,而是每次都加载它们。

4

1 回答 1

1

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

不要忘记两件事:

  • 也许您想添加public, max-age=XXX,所以公共代理也可以缓存您的内容?
  • 当您希望浏览器缓存这么长时间时,您应该记住,当您更改内容时,文件名必须更改。一种解决方案是S3BotoStorage与 Django- 结合使用CachedStaticFilesStorage(请参见此处,但我在没有单独的缓存后端的情况下使用它)
于 2013-10-01T08:03:07.270 回答