Выборочное отключение зависимостей ресурса JSF

Если я использую на одной странице как bootsfaces, так и butterfaces, обе библиотеки импортируют свои объединенные таблицы стилей jquery и bootstrap, как показано ниже:

<link type="text/css" rel="stylesheet" href="/javax.faces.resource/bootstrap.min.css.xhtml?ln=butterfaces-configurable">
<link type="text/css" rel="stylesheet" href="/javax.faces.resource/css/bootstrap.min.css.xhtml?ln=bsf">

<script type="text/javascript" src="javax.faces.resource/jquery.min.js.xhtml?ln=butterfaces-configurable"></script>
<script type="text/javascript" src="javax.faces.resource/jquery.min.js.xhtml?ln=bsf"></script>

Если обе библиотеки используют одну и ту же версию, это приводит к потере пропускной способности для импорта дубликатов. Если обе библиотеки используют разные версии, возможно возникновение конфликта. Каков наилучший подход для решения этой проблемы? Могу ли я выборочно отключить однокомпонентные библиотеки для импорта определенных таблиц стилей или скриптов?

2 ответа

Вы можете использовать следующий параметр web.xml, чтобы отключить предоставление jQuery в #ButterFaces.

<context-param>
    <param-name>de.larmic.butterfaces.provideJQuery</param-name>
    <param-value>false</param-value>
</context-param>

вы также можете отключить загрузчик, если у вас есть собственная версия

<context-param>
    <param-name>de.larmic.butterfaces.provideBootstrap</param-name>
    <param-value>false</param-value>
</context-param>

Обновление от 22 января 2016 г. Тем временем мы (команда BootsFaces) предприняли некоторые шаги, чтобы добавить детальный контроль над загрузкой ресурсов. См. http://www.bootsfaces.net/layout/resourcemanagement.jsf для получения подробной информации. Короче говоря, BootsFaces не загружает jQuery, jQueryUI или Bootstrap, если обнаруживает, что эти ресурсы уже есть. Кроме того, вы можете отключить загрузку ресурсов с помощью параметров контекста web.xml.

Устаревший первоначальный ответ: в настоящее время единственным решением является использование OmniFaces, как сказал BalusC. Мы могли бы предложить улучшить BootsFaces, чтобы он добавлял jQuery.min.js и bootstrap.min.css, только если эти библиотеки не предоставлены страницей JSF. В этом случае ButterFaces предоставит jQuery и BootsFaces. Конечно, вы должны убедиться, что предоставленная версия jQuery совместима с BootsFaces.

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