如何强制浏览器重新加载 h:outputScript 资源?

Sha*_*shi 3 versioning resources jsf

JS文件extra.js包含如下:

<h:outputScript library="js" name="extra.js"  />
Run Code Online (Sandbox Code Playgroud)

我正面临浏览器缓存的问题。很多时候,我不会得到更新的副本。

在纯 HTML 中,我们曾经使用 JS URL 附加版本号或随机数,例如:

<script type="text/javascript" src="http://yyy.zzzz.net/js/tryjs?v=1234"></script>
where v is the version number.
Run Code Online (Sandbox Code Playgroud)

有什么办法可以将一些版本号添加到生成的资源 URL 中h:outputScript吗?

Dan*_*iel 5

您可以执行以下操作之一

管理其中一个 bean 中的版本号#{myBean.myVersion}并将其附加到您的 js 文件中h:outputScript

像这样:

<h:outputScript library="js" name="extra.js?#{myBean.myVersion}/>
Run Code Online (Sandbox Code Playgroud)

或重命名您的 js 文件以将 包含在#{myBean.myVersion}其名称中,如下所示

<h:outputScript library="js" name="extra.#{myBean.myVersion}.js/>
Run Code Online (Sandbox Code Playgroud)

你也可以看看这个:JSF 2.0中的资源(库)