一尘不染

JSF资源版本控制

tomcat

我正在尝试在应用程序中围绕资源进行版本控制。

如果我喜欢这个资源/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


阅读 256

收藏
2020-06-16

共1个答案

一尘不染

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

这没用。 它说RESOURCE_NOT_FOUND

如果您指定js为库名称,则此方法将起作用。

<h:outputScript library="js" name="mainscript.js" />

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

resources/default/1_0_0/js/mainscript.js

然后,可以如下指定:

<h:outputScript library="default" name="js/mainscript.js" />

他们那里没有任何版本控制,但是它如何在头部附加v = 2.2.1

这样做是通过PrimeResourceln=primefaces参数的资源请求开始的。它getRequestPath()具有以下实现:

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

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

2020-06-16