Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
476 views
in Technique[技术] by (71.8m points)

tomcat - JSF resource versioning

I am trying to put versioning around the resources in an application.

If I do like this resources/js/1_0_0/mainscript.js

It does not work. It says RESOURCE_NOT_FOUND

but when I do like this

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

It works. I do not like the way it is organized in the second way. First one looks cool. Any Idea?

I am using Tomcat 7.0, JSF 2.0.9

Update: I was checking primefaces-2-2.1.jar. Since when I checked the page source, I saw this /javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces&v=2.2.1">

Then I looked at META-INF/resources/primefaces/jquery/jquery.js

They did not have any versioning in there but how did it append v=2.2.1 in the head

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

If I do like this resources/js/1_0_0/mainscript.js

It does not work. It says RESOURCE_NOT_FOUND

This will work if you specify js as library name.

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

However, this is not the proper usage of a resource library. Rather introduce one.

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

Then you can specify it as follows:

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

They did not have any versioning in there but how did it append v=2.2.1 in the head

It's done by PrimeResource which kicks in on resource requests with ln=primefaces parameter. Its getRequestPath() has the following implementation:

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

Where Constants is the PrimeFaces specific constants file which is updated with every PF version.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...