我想创建一种方法来自动更新jsf中对css文件的引用(通过ant等),这是什么常见做法?有没有可用的自动化工具?
基本上我希望能够部署我的war文件,并确保客户端下载修改后的css文件的任何更改,而无需清除缓存。谢谢你的帮助!
答案 0 :(得分:3)
您可以使用JSF内置资源库版本控制。如果尚未完成,您只需要在webapp的/resources
文件夹中引入资源库。然后,您可以使用模式\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>
。