1

私は、.htaccessファイルを使ってウェブサイトのヘッダーを設定しています。私はファイルキャッシュを変更した後に期限切れになるようにファイルキャッシュを設定する方法を知りたい。これは可能ですか?変更後に期限切れになるようにキャッシュを設定するにはどうすればよいですか?

つまり、これは機能しますか?言い換えれば

ExpiresDefault "modification" 

、私はファイルがサーバーから変更されているまで、キャッシュが滞在したいです。

答えて

0

期限切れヘッダーについて間違った考えがあると思います。 expiresヘッダーは、ファイルをローカルにキャッシュできる期間を受信者に通知します。この期間の後、受信機はリソースを再要求しなければならない。サーバーが1時間後にリソースの有効期限が切れると言うと、リソースは1分後に変更されます。受信者がこの変更されたバージョンを取得するまでにさらに59分かかります。リソースが期限切れになったことをサーバーが受信者に通知する方法はありません。

+0

期限切れ変更は本質的に必要なものの反対です。キャッシュされたファイルがいつ最後に変更されたかを確認するために、「期限切れの」ヘッダーを設定する必要がある – user734063

1

変更を有効にすると、ファイルの最終変更後の一定の時間が経過するようにキャッシュが設定されます。たとえファイルが設定されたキャッシュの時間制限内で再度変更されたとしても、ファイルをすでにキャッシュしているクライアントは新しいバージョンを探すことはしません。 Apache Expirationには、期限切れモジュールに関する情報が含まれています。ここで

は例です:

#BEGIN Cache-Control Headers 
<ifModule mod_headers.c> 
    <filesMatch "\.(css|js)$"> 
     ExpiresDefault "modification plus 4 weeks" 
    </filesMatch> 
</ifModule> 
# END Cache-Control Headers 

CSSファイルが1週間前に変更された場合は、キャッシュは、どのようにあなたが新しく変更されたCSSを得るのですか代わりに4

の3週間で期限が切れますファイルが既にキャッシュされた後に表示するファイルですか?あなたのCSSファイルを変更した場合、キャッシュが期限切れになるまで

は、変更がないはキャッシュされ、ブラウザに表示されます。この問題を回避する方法の1つは、キャッシュされたCSSファイルの名前を変更することです。 (例の名前を変更するmain1.css - > main2.css)

関連する問題