web-dev-qa-db-ja.com

キャッシュの有効期限を設定しますか?

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

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

26
lisovaccaro

Webサイトの高速化のためのYahoo!ベストプラクティス、 に従う必要があります 期限切れまたはキャッシュを追加する-Control Header and Configure ETags

これを行うためにサーバーを実際に構成する方法は、質問で提供した情報よりもはるかに多くの情報に依存します。

16
Matt Ball

キャッシュの有効期限を設定する方法の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>
17

この質問が、Tomcatアプリケーションディレクトリの一部であるjavascriptまたはcssのキャッシュに関するものである場合、 /conf/web.xmlファイルを調べてください。

通常、ここで利用可能なMIMEマッピングは
<mime-mapping>
<extension> js </ extension>
<mime-type> application/javascript </ mime-type>
</ mime-mapping>

Apacheでは、デフォルトのディレクティブは
ExpiresByType text/javascript "access plus <時間枠を指定>"

Apacheディレクティブをapplication/javascriptに変更するか、Tomcat mimeマッピングをtext/javascriptに変更すると、有効期限がタイムフレームに設定されます。

1
tushar bhatia