我想创建一种以自动方式(通过 ant 等)更新对 jsf 中 css 文件的引用的方法。这种做法的常见做法是什么?是否有任何可用的自动化工具?
基本上我希望能够部署我的war文件并确保客户端下载修改后的css文件的任何更改,而无需清除缓存。谢谢您的帮助!
您可以使用 JSF 内置资源库版本控制。/resources
如果尚未完成,您只需要在 webapp 的文件夹中引入资源库。然后,您可以使用该模式创建一个版本子文件夹\d(_\d)*
。例如,
/resources/default/1_0/css/layout.css
您参考如下:
<h:outputStylesheet library="default" name="css/layout.css" />
库版本作为v
参数附加在生成<link>
元素的查询字符串中。
<link type="text/css" rel="stylesheet" href="/contextname/javax.faces.resource/css/layout.js.xhtml?ln=default&v=1_0" />
当您需要部署更新时,将1_0
子文件夹重命名为1_1
或其他名称(可以由 ant 完成),它将被更新,并且浏览器将被迫下载它而不是使用缓存的。
这同样适用于JS<h:outputScript>
和<h:graphicImage>
图像资源。