CSS #{resource} 版本控制

CSS #{resource} versioning

如何对 CSS 资源中的图像资源进行版本控制或强制浏览器清除缓存?

在我的 css:

中使用此代码
.applicationLogo {
    background: url("#{resource['images:invoicePa.png']}") no-repeat 0 0;
}

基本上,附加一个版本查询字符串。它可以静态完成

background: url("#{resource['images:invoicePa.png']}?1") no-repeat 0 0;

或动态地基于例如.

background: url("#{resource['images:invoicePa.png']}?#{startup.time}") no-repeat 0 0;

甚至是资源自己的时间戳(虽然检查起来相对昂贵)。

background: url("#{resource['images:invoicePa.png']}?#{facesContext.externalContext.getResource('/resources/images/invoicePa.png').openConnection().lastModified}") no-repeat 0 0;

另一种方法是简单地重命名文件。

background: url("#{resource['images:invoice_payment.png']}") no-repeat 0 0;