Управление версиями ресурсов JSF

Я пытаюсь установить управление версиями в приложении.

Если мне нравятся эти ресурсы /js/ 1_0_0/mainscript.js

Это не работает. Он говорит RESOURCE_NOT_FOUND

но когда мне это нравится

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

Это работает. Мне не нравится, как это организовано по-другому. Первый выглядит круто. Любая идея?

Я использую Tomcat 7.0, JSF 2.0.9

Обновление: я проверял правые-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 в голову

Ответ 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 в голову

Выполняется с помощью PrimeResource, который запускает запросы ресурсов с параметром ln=primefaces. Его getRequestPath() имеет следующую реализацию:

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

Где Constants - файл конкретных констант PrimeFaces, который обновляется каждой версией PF.