即使使用项目阶段和过滤器后,我的js / css缓存也无法正常工作,标题日期始终在更新

时间:2019-03-09 11:24:39

标签: jsf jsf-2

我正在尝试为我的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

1 个答案:

答案 0 :(得分:0)

您使用Mojarra还是Myfaces?

在Mojarra中,您可以通过以下上下文参数(该值以毫秒为单位)控制到期时间:

? CStr(rs(1))

在MyFaces中:

<context-param>
    <param-name>com.sun.faces.defaultResourceMaxAge</param-name>
    <param-value>3628800000</param-value> <!-- 6 weeks. -->
</context-param>

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