1

現在、S3 からロードされた静的ファイルを使用して Heroku にプロジェクトをデプロイしています。boto/django-storage を使用して S3 コンテンツを管理していますが、同じビューを呼び出したり、同じページを繰り返しロードしたりすると、すべての画像/静的コンテンツが 2 回ロードされ、キャッシュされません。

置きました AWS_HEADERS = { 'Cache-Control': 'max-age=2592000', }

settings.pyの では、理由はまったく同じ画像 (更新 + 2 回ロード) の URL に異なる署名があるようですか? 複数のヘッダーを試してみましたが、ブラウザーはそれをキャッシュしたくないようで、代わりに毎回すべてをロードします。

4

1 に答える 1

1

設定してみてくださいAWS_QUERYSTRING_AUTH = False。その後、生成される URL は常に同じ (パブリック) URL になります。のデフォルト ACL はS3BotoStorageですpublic-read。これは変更しないでください。

忘れてはいけない 2 つのこと:

  • おそらく追加したいpublic, max-age=XXXので、パブリックプロキシもコンテンツをキャッシュできますか?
  • ブラウザにそれだけ長くキャッシュさせたい場合は、コンテンツを変更するときにファイル名を変更する必要があることに注意してください。1 つの解決策はS3BotoStorage、Django と組み合わせることですCachedStaticFilesStorage(こちらを参照してください。ただし、別のキャッシュ バックエンドなしで使用します)。
于 2013-10-01T08:03:07.270 に答える