JSF资源版本控制

Rav*_*avi 4 jsf tomcat primefaces jsf-2

我试图在应用程序中的资源周围进行版本控制.

如果我喜欢这个资源/ js/1_0_0/mainscript.js

这是行不通的.它说RESOURCE_NOT_FOUND

但是当我这样做的时候

资源/ JS/mainscript.js/1_0_0.js

有用.我不喜欢它以第二种方式组织的方式.第一个看起来很酷.任何的想法?

我正在使用Tomcat 7.0,JSF 2.0.9

更新:我正在检查primefaces-2-2.1.jar.从我检查页面源代码开始,我看到了这个/javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces&v=2.2.1">

然后我查看了META-INF/resources/primefaces/jquery/jquery.js

他们在那里没有任何版本,但它是如何追加v = 2.2.1的

Bal*_*usC 10

如果我喜欢这个资源/ js/1_0_0/mainscript.js

这是行不通的.它说RESOURCE_NOT_FOUND

如果您指定js为库名称,这将起作用.

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

但是,这不是资源库的正确用法.而是介绍一个.

resources/default/1_0_0/js/mainscript.js
Run Code Online (Sandbox Code Playgroud)

然后您可以按如下方式指定它:

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

他们在那里没有任何版本,但它是如何追加v = 2.2.1的

这是通过参数PrimeResource启动资源请求来完成的ln=primefaces.它getRequestPath()具有以下实现:

@Override
public String getRequestPath() {
    return super.getRequestPath() + "&amp;v=" + Constants.VERSION;
}
Run Code Online (Sandbox Code Playgroud)

ConstantsPrimeFaces特定常量文件在哪里,每个PF版本都会更新.