2016-09-22 4 views
1

.htaccessにpng、jpg、html、css、js、およびすべての有効期限を1か月として書きました。 しかし、htmlのうち頻繁に更新されるものはほとんどありません。どうすればそれを管理できますか? また、私の.htaccessを変更した場合、ブラウザはコンテンツを再度ダウンロードするか、キャッシュから読み込みますか?ほんの少しのページを頻繁に更新する必要があるWebサイトで、leverageのキャッシュを使用するには?

## EXPIRES CACHING ## 
<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresByType image/jpg "access 1 year" 
    ExpiresByType image/jpeg "access 1 year" 
    ExpiresByType image/gif "access 1 year" 
    ExpiresByType image/png "access 1 year" 
    ExpiresByType text/css "access 1 month" 
    ExpiresByType application/pdf "access 1 month" 
    ExpiresByType application/javascript "access 1 month" 
    ExpiresByType application/x-javascript "access 1 month" 
    ExpiresByType application/x-shockwave-flash "access 1 month" 
    ExpiresByType image/x-icon "access 1 year" 
    ExpiresDefault "access 2 days" 
</IfModule> 
## EXPIRES CACHING ## 

これは私が.htaccessで書いたコードです。

変更を加えたら、有効期限が1か月であるか、新しいコンテンツが読み込まれるため、ブラウザはキャッシュから読み込みますか?

私のケースでは、私はハードリフレッシュページのみ新しいコンテンツを読み込みます。しかし、ユーザーは彼がそれをする必要があることを知らない。これに対する解決策は何ですか?

答えて

0

ソースファイルの変更日に基づいて有効期限ヘッダーを設定することをお勧めします。これはして行うことができます。

ExpiresActive On 
ExpiresDefault "modification plus 1 month" 

ます。また、使用してこれを実現できます。

<FilesMatch "\.(png|jpe?g|html?|css|js)$"> 
    ExpiresActive On 
    ExpiresDefault "modification plus 1 month" 
</FilesMatch> 
+0

しかし、これは右の1月のブラウザキャッシュ内のコンテンツを続けるだろうか? 2日後に変更を加えた場合、更新されたページはハードリフレッシュなしでどのように読み込まれますか? –

+0

@ShayanAnwar "効果の差は微妙です。もし' M'を使用すると、すべてのキャッシュ内のドキュメントの現在のコピーはすべて同時に期限切れになります。 URL。 'A'を使用すると、クライアントごとに有効期限が異なります。これは、頻繁に変更されないイメージファイルには適しています。 – hjpotter92

+0

私の質問で上に追加したコードを見て、あなたのコードは、キャッシュがハードリフレッシュせずに有効期限が切れている場合でも、キャッシュの代わりに更新されたコンテンツを読み込むようブラウザに指示しますか? –

関連する問題