即使使用项目阶段和过滤器后,我的JS/CSS缓存也无法正常工作,标题日期总是会更新



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

我尝试使用javax.faces.project_stage作为生产并创建自定义过滤器,但没有任何效用。

需要您的帮助...下面是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>

看起来响应服务器标头正在更新每个命中的日期和时间,这可能就是它无法从缓存中选择它的原因。1个文件的标题响应

您使用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>

正确设置HTTP标头以强制JS,CSS和PNG文件上的缓存

最新更新