即使使用项目阶段和过滤器,标题日期总是得到更新,我的js / css缓存仍无法正常工作

问题描述 投票:0回答:1

我正在尝试为我的JS / CSS文件实现缓存,但它无法正常工作,我使用的是Mojarra JSF-2.2.12和PrimeFaces 6。

我尝试使用javax.faces.PROJECT_STAGE作为Production并创建了一个自定义过滤器,但没有任何效果。

需要你的帮助......下面是web.xml代码片段

<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Production</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.defaultResourceMaxAge</param-name>
<param-value>3628800000</param-value> <!-- 8 hours -->  
</context-param>

在xhtml中我们写了如下。

<h:outputScript name="js/ProcessSpecific-min.js"></h:outputScript>

看起来响应服务器头正在更新每次命中的日期和时间,这可能是因为它无法从缓存中选择它。 header response for 1 file

jsf jsf-2
1个回答
0
投票

你使用Mojarra或Myfaces?

在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>

Set HTTP headers properly to force caching on JS, CSS and PNG files

© www.soinside.com 2019 - 2024. All rights reserved.