【发布时间】:2013-08-25 17:43:22
【问题描述】:
如何告诉 GlassFish 服务器将所有 JS、CSS 和 PNG 文件存储到浏览器缓存中以减少 HTTP GET 请求?
我正在使用 JSF 和 PrimeFaces。
【问题讨论】:
标签: jsf glassfish servlet-filters browser-cache
如何告诉 GlassFish 服务器将所有 JS、CSS 和 PNG 文件存储到浏览器缓存中以减少 HTTP GET 请求?
我正在使用 JSF 和 PrimeFaces。
【问题讨论】:
标签: jsf glassfish servlet-filters browser-cache
只需使用 JSF 内置资源处理程序。 IE。将<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>
【讨论】: