【问题标题】:How can I implement CSS Cache Busting with JSF outputStylesheet?如何使用 JSF outputStylesheet 实现 CSS Cache Busting?
【发布时间】:2011-06-10 14:32:31
【问题描述】:

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

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

实现 CSS 缓存清除的常用方法是添加一个版本参数,如 v=123,但 outputStyleSheet 不支持此功能:

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

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

【问题讨论】:

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


    【解决方案1】:

    如果不覆盖 StylesheetRenderer(假设您在 Mojarra 上),这是不可能的。它确实没有考虑查询字符串。但是,作为一种(临时)解决方法,很高兴知道在 &lt;h:outputStyleSheet&gt; 中使用 CSS 自己的 @import 规则包含 CSS 是有效的。

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

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

    【讨论】:

    • @banter:更好地使用资源库版本控制。另请参阅此答案的底部:stackoverflow.com/questions/11988415/…
    • 谢谢,但我想避免重命名目录。从 JSP 开始,我习惯于通过传播到请求的 Maven 版本来定义脚本版本。所以看起来 JSF 中没有简单的解决方案。
    • @banter:然后创建一个自定义资源处理程序。
    • 不使用'h'标签而只写html怎么样?
    猜你喜欢
    • 2017-01-07
    • 2018-09-15
    • 2011-11-09
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多