Как включить файл JS со строкой запроса в <h: outputScript>? - PullRequest
4 голосов
/ 18 августа 2011

На странице JSF я использую этот код для включения файла JS:

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

Работает хорошо, но я хочу реализовать очистку кеша, добавив параметр версии:

<h:outputScript library="js" name="reworkBase.js?version=1" />

Но файл JS не будет найден. Я знаю, что это также хорошо работает, если я использую тег <script type="text/javascript">. Но есть ли способ реализовать с помощью тега <h:outputScript>?

1 Ответ

2 голосов
/ 18 августа 2011

Это ошибка в Мохарре.Их ScriptRenderer был согласно проблеме 1212 исправлен для поддержки строк запроса.Тем не менее, их исправление было неверным для случая library.Они использовали + вместо &amp; в качестве разделителя параметров строки запроса, что приводит только к 404:

<script src="/context/javax.faces.resource/reworkBase.js.xhtml?ln=js+version=1">

Это должно было быть:

<script src="/context/javax.faces.resource/reworkBase.js.xhtml?ln=js&amp;version=1">

Я сообщил об этомошибка как выпуск 2168 .

Между тем, ваша лучшая ставка - просто опустить library в целом, учитывая имя библиотеки js (что, очевидно, означает "JavaScript")Вы, кажется, не заинтересованы в использовании настраиваемых библиотек look'n'feel / scripting вообще.

<h:outputScript name="js/reworkBase.js?version=1" />

Это приведет к правильному URL.

<script src="/context/javax.faces.resource/js/reworkBase.js.xhtml?version=1">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...