非常に一般的な解決策は、次のことを行うことです。
<ifModule mod_headers.c>
FileETag None
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Thu, 01 Jan 1970 00:00:01 GMT"
</ifModule>
それらをキャッシュしたいのですが、再デプロイするときに無効にすることも必要です。 ETagを再度有効にしてから、ファイルを再アップロードするときにファイルに「タッチ」して、タイムスタンプがすべて現在の時刻を読み取り、異なるETagを取得する必要があると考えています。
私はこの答えから読んでいることをいくらか進んでいます:
https://stackoverflow.com/questions/499966/etag-vs-header-expires
それは正しいですか?
Etagは良い考えですが、expiresヘッダーがそれを妨げます。なぜexpiresヘッダーを正しい値に設定しないのですか?有効期限をクレイジーな日付に設定する人が多すぎると、適切に構成されたクライアントの場合、クライアントはサーバーに要求を送信することすらできなくなります。
まず、有効期限をrequest date + 1 week
のような正常なものに設定します(予想されるリリースサイクルが何であれ)。次に、expiresヘッダーの仕様に適切に従うクライアントは、その時間が経過した後にチェックバックします。デプロイするたびにすべてをキャッシュしようとするよりもはるかにシンプルで信頼性があります。
EDIT:あなたが与えた例はあなたの設定だと思いました。耳障りに聞こえるわけではありませんが、キャッシュを使って愚かなことをしている人がいます。