4

我如何告诉 GlassFish 服务器将所有 JS、CSS 和 PNG 文件存储到浏览器缓存中以减少 HTTP GET 请求?

我正在使用 JSF 和 PrimeFaces。

4

1 回答 1

7

只需使用 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>

也可以看看:

于 2013-08-22T20:11:00.440 回答