CacheControlFilter在CSS背景图像上不起作用

时间:2018-12-11 16:34:08

标签: jsf browser-cache omnifaces

我正在将OmniFace 2.7与Primefaces 6.0一起使用。我为所有图像类型(*.jpg | *.jpeg | *.png | *.gif | *.ico使用CacheControlFilter设置了365d的到期时间。

此浏览器缓存设置似乎不适用于获得如下URL的CSS背景图像:

.../playground/javax.faces.resource/images/smiley.jpg.xhtml

同样适用于URL类似的组合资源文件(CSS和JS):

.../javax.faces.resource/LONG-HASH.js.jsf?ln=omnifaces.combined&v=1544138175000

任何解决此问题的提示将非常有帮助。谢谢

1 个答案:

答案 0 :(得分:0)

答案在CacheControlFilter的{​​{3}}和showcase中。

  

重要通知:此过滤器会自动跳过JSF资源,例如<h:outputScript><h:outputStylesheet>@ResourceDependency等所服务的资源。它们与缓存相关标头即受ResourceHandler实现的documentation控制。在Mojarra和MyFaces中,默认的到期时间为1周(604800000毫秒),可以通过具有以下名称的web.xml上下文参数和以毫秒为单位的值来配置,例如3628800000 6周:

     
      
  • Mojarra:com.sun.faces.defaultResourceMaxAge
  •   
  • MyFaces:org.apache.myfaces.RESOURCE_MAX_TIME_EXPIRES
  •   
     

使用此过滤器控制与缓存相关的标头是没有意义的,因为它们仍然会被覆盖。

我没有什么要补充的。