如何使用JSF outputStylesheet实现CSS Cache Busting?

时间:2011-06-10 14:32:32

标签: java css jsf cache-control browser-cache

在JSF页面模板中,我使用此代码包含CSS资源:

<h:outputStylesheet library="css" name="mystyles.css"  />

实现CSS缓存清除的常用方法是添加版本参数,例如v=123,但在outputStyleSheet中不支持:

<h:outputStylesheet library="css" name="mystyles.css?v=123"  />

将导致JSF1064警告,并且找不到CSS。

1 个答案:

答案 0 :(得分:10)

如果没有覆盖StylesheetRenderer(假设你在Mojarra上),这是不可能的。它确实没有考虑查询字符串。但是,作为(临时)解决方法,最好知道在@import内使用CSS自己的<h:outputStyleSheet>规则包含CSS是有效的。

<h:outputStylesheet target="head">
    @import url('css/mystyles.css?v=123')
</h:outputStylesheet>

您可能希望向Mojarra男孩发布enhancement request,以便在以后的版本中考虑这一点。