在 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
包含 CSS 是有效的。里面的规则<h:outputStyleSheet>
.
<h:outputStylesheet target="head">
@import url('css/mystyles.css?v=123')
</h:outputStylesheet>
您可能想发布 enhancement request致 Mojarra 男孩们在未来的版本中考虑到这一点。
关于java - 如何使用 JSF outputStylesheet 实现 CSS Cache Busting?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6307814/