附加版本的css文件

时间:2012-05-14 21:37:11

标签: java css jsf-2 richfaces

我想创建一种方法来自动更新jsf中对css文件的引用(通过ant等),这是什么常见做法?有没有可用的自动化工具?

基本上我希望能够部署我的war文件,并确保客户端下载修改后的css文件的任何更改,而无需清除缓存。谢谢你的帮助!

1 个答案:

答案 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&amp;v=1_0" />

当您需要部署更新时,将1_0子文件夹重命名为1_1或其他不同的内容(可以通过ant完成),它将被更新,浏览器将被强制下载而不是使用缓存的。

这同样适用于JS和图像资源的<h:outputScript><h:graphicImage>