2013-09-30 97 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,但我使用它時沒有單獨的緩存後端)