Как на самом деле использовать JAWR с библиотекой из CDN

Мы используем JAWR для обслуживания контента, но хотели бы также использовать CDN для распространения скриптов. Например, чтобы использовать jQuery, мы имеем:

jawr.js.bundle.jquery.id=/bundles/jquery.js
jawr.js.bundle.jquery.mappings=/js/lib/.license,/js/lib/jquery-1.8.2.js
jawr.js.bundle.jquery.productionURL=http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js

Это прекрасно работает. Мы получаем локальную библиотеку в режиме отладки, а библиотеку CDN - в производственном режиме. Однако давайте добавим:

jawr.js.bundle.bootstrap.id=/bundles/bootstrap.js
jawr.js.bundle.bootstrap.mappings=/js/lib/bootstrap-2.1.0/js/.license,/js/lib/bootstrap-2.1.0/js/bootstrap.js
jawr.js.bundle.bootstrap.dependencies=jquery

Теперь при доступе (не при запуске) страницы с помощью /bundles/bootstrap.jsJAWR бросает неприятное исключение:

java.lang.IllegalStateException: The bundleDataHashCode must be set before accessing the url prefix.
    at net.jawr.web.resource.bundle.JoinableResourceBundleImpl.getURLPrefix(JoinableResourceBundleImpl.java:560)
    ...
    at net.jawr.web.taglib.AbstractResourceBundleTag.doStartTag(AbstractResourceBundleTag.java:68)
    ...

Означает ли это, что я не могу зависеть от пакета с productionURL?

1 ответ

Решение

На JAWR есть открытый вопрос по этому поводу и ветка (без ответов) на форуме. Ответ (от меня) на данный момент:

Ты можешь использовать productionURL, но не зависят от этих связок. Все, что нарушается, это механизм зависимости. Вручную добавив все необходимое <jawr:.../> теги работает.

Другие вопросы по тегам