我正在尝试在应用程序中围绕资源进行版本控制。
如果我喜欢这个资源/js/1_0_0/mainscript.js
这没用。它说RESOURCE_NOT_FOUND
但是当我这样做的时候
resources / 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
如果我喜欢这个资源/js/1_0_0/mainscript.js 这没用。 它说RESOURCE_NOT_FOUND
这没用。 它说RESOURCE_NOT_FOUND
如果您指定js为库名称,则此方法将起作用。
js
<h:outputScript library="js" name="mainscript.js" />
但是,这不是资源库的正确用法。而是介绍一个。
resources/default/1_0_0/js/mainscript.js
然后,可以如下指定:
<h:outputScript library="default" name="js/mainscript.js" />
这样做是通过PrimeResource带ln=primefaces参数的资源请求开始的。它getRequestPath()具有以下实现:
PrimeResource
ln=primefaces
getRequestPath()
@Override public String getRequestPath() { return super.getRequestPath() + "&v=" + Constants.VERSION; }
ConstantsPrimeFaces特定的常量文件在哪里,每个PF版本都会更新该文件。
Constants