在JSF页面模板中,我使用此代码来包含一个CSS资源:
<h:outputStylesheet library="css" name="mystyles.css" />
实现CSS缓存破坏的通常方式是添加一个版本参数,如v = 123,但是在outputStyleSheet中不支持此参数:
<h:outputStylesheet library="css" name="mystyles.css?v=123" />
将导致JSF1064警告,并且不会找到CSS.
解决方法
这不可能没有重写StylesheetRenderer(假设你在Mojarra).确实没有考虑到查询字符串.然而,作为(临时)解决方法,很高兴知道使用CSS’自己的@import规则在< h:outputStyleSheet>中包含CSS是有效的.
<h:outputStylesheet target="head"> @import url('css/mystyles.css?v=123') </h:outputStylesheet>
您可能想要向Mojarra男孩发布一个enhancement request,以便在将来的版本中考虑到这一点.