Управление версиями ресурса JSF
Я пытаюсь поместить версии вокруг ресурсов в приложении.
Если мне нравятся эти ресурсы /js/1_0_0/mainscript.js
Это не работает. Это говорит RESOURCE_NOT_FOUND
но когда я так делаю
ресурсы / 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 ответ
Если мне нравятся эти ресурсы /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() + "&v=" + Constants.VERSION;
}
куда Constants
это файл констант PrimeFaces, который обновляется с каждой версией PF.