在JSF页面模板中,我使用以下代码来包含CSS资源:
<h:outputStylesheet library="css" name="mystyles.css" />
通常实现CSS缓存控制的方法是添加版本参数,例如 v=123
,但是在outputStyleSheet中不支持该方法。<h:outputStylesheet library="css" name="mystyles.css?v=123" />
会导致JSF1064警告并且找不到CSS。
在JSF页面模板中,我使用以下代码来包含CSS资源:
<h:outputStylesheet library="css" name="mystyles.css" />
通常实现CSS缓存控制的方法是添加版本参数,例如 v=123
,但是在outputStyleSheet中不支持该方法。<h:outputStylesheet library="css" name="mystyles.css?v=123" />
会导致JSF1064警告并且找不到CSS。
如果您使用的是Mojarra,那么在不重写StylesheetRenderer
的情况下是不可能实现的。它确实没有考虑查询字符串。然而,作为(临时)解决方法,了解可以使用CSS自己的@import
规则在<h:outputStyleSheet>
中包含CSS是有效的。
<h:outputStylesheet target="head">
@import url('css/mystyles.css?v=123')
</h:outputStylesheet>
您可能希望向Mojarra开发团队提交一个增强请求,以便在未来的版本中考虑这一点。