Управление версиями ресурса JSF - PullRequest
4 голосов
/ 29 марта 2012

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

Если мне нравятся эти ресурсы / 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 в заголовок

1 Ответ

10 голосов
/ 29 марта 2012

Если мне нравятся эти ресурсы / 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.

...