2011-08-20 16 views
25

私はChromeで、私のサイトをテストして、次の勧告だ:キャッシュ有効期限を設定しますか?

The following resources are missing a cache expiration. Resources that do not specify an expiration may not be cached by browsers: 
style.css 
jquery.marquee.js 
jquery.marquee.css 
logo.png 

私はこれらのファイルのキャッシュの有効期限を設定するにはどうすればよいですか?

+1

あなたはどのサーバーを実行していますか? –

答えて

1

この質問は、tomcatアプリケーションディレクトリの一部であるjavascriptまたはcssのキャッシュに関するものです。 /conf/web.xmlファイルを調べることをお勧めします。

は、典型的には、ここで利用可能なMIMEマッピングは
< MIMEマッピング>
      <拡張ある> JS < /拡張>
      < MIMEタイプ>アプリケーション/ javascriptの</MIMEタイプ>
</mime-mapping >

は、Apacheでは、デフォルトのディレクティブは
      ExpiresByTypeディレクティブテキスト/ javascriptのである「あなたの時間枠を指定してアクセスプラス< >」

あなたは/アプリケーションにJavaScriptをApacheのディレクティブを変更したり、TomcatのMIMEマッピングを変更することがありto text/javascriptに変更し、有効期限をあなたの時間枠に設定します。

17

キャッシュの有効期限を設定する方法の1つは、.htaccessファイルを使用することです。

以下のコードでは、それぞれのファイルタイプの有効期限が設定されます。 CSSファイルの有効期限は14日間になります。

<IfModule mod_expires.c> 
    ExpiresActive on 
    ExpiresDefault "access plus 1 month" 
    ExpiresByType application/javascript "access plus 1 year" 
    ExpiresByType image/x-ico "access plus 1 year" 
    ExpiresByType image/jpg "access plus 14 days" 
    ExpiresByType image/jpeg "access plus 14 days" 
    ExpiresByType image/gif "access plus 14 days" 
    ExpiresByType image/png "access plus 14 days" 
    ExpiresByType text/css "access plus 14 days" 
</IfModule> 
+0

私は(例えば、更新後に)欲しいときにキャッシュをクリアする方法はありますか? –

+3

@ Reign.85:ブラウザに強制的にキャッシュをクリアすることはできません。 'style.css'〜' style.css?v1.1'のようなファイルのバージョン管理を使うか、ファイルの名前を変更することで問題を解決できます。 –

+0

.htaccessからそのコードを削除した場合、ブラウザはファイルの名前を変更せずに(またはバージョン管理を使用して)最新のバージョンを取得しますか? –

関連する問題