HTTP GET リクエストを減らすために、すべての JS、CSS、および PNG ファイルをブラウザのキャッシュに保存するように GlassFish サーバーに指示するにはどうすればよいですか?
JSF と PrimeFaces を使用しています。
HTTP GET リクエストを減らすために、すべての JS、CSS、および PNG ファイルをブラウザのキャッシュに保存するように GlassFish サーバーに指示するにはどうすればよいですか?
JSF と PrimeFaces を使用しています。
JSF 組み込みのリソース ハンドラを利用するだけです。つまり、「普通のバニラ」の代わりにフォルダ内のファイルを使用して<h:outputStylesheet name>
、<h:outputScript name>
およびを使用します。<h:graphicImage name>
/resources
<link rel="stylesheet">
<script>
<img>
<h:outputStylesheet name="css/style.css" />
<h:outputScript name="js/script.js" />
<h:graphicImage name="images/logo.png" />
この方法では、リソースのキャッシュについてまったく心配する必要はありません。JSF 組み込みリソース ハンドラーは、必要な応答ヘッダーを既に設定しています。有効期限のデフォルトはすでに 1 週間です。
Mojarra では、次のコンテキスト パラメーターで有効期限を制御できます (値はミリ単位です)。
<context-param>
<param-name>com.sun.faces.defaultResourceMaxAge</param-name>
<param-value>3628800000</param-value> <!-- 6 weeks. -->
</context-param>
そして MyFaces では:
<context-param>
<param-name>org.apache.myfaces.RESOURCE_MAX_TIME_EXPIRES</param-name>
<param-value>3628800000</param-value> <!-- 6 weeks. -->
</context-param>