2014-07-12 7 views
0

Я обновляю Apache Roller, веб-приложение на основе Java, от YUI2 до YUI3. Мы не используем CDN от Yahoo без SSL, потому что Roller иногда работает на SSL, и мы хотели бы избежать появления предупреждений о всплывающих окнах браузера для пользователей, к которым обращаются не-SSL-сайты. Это означает, что нам нужно будет внедрить библиотеки YUI3 в наш проект, как это было сделано ранее с гораздо меньшим YUI2. Проблема в том, что YUI3 имеет тонну папок (всего около 375), по одному для каждой зависимости компонента или компонента. Я использовал YUI Configurator, чтобы идентифицировать и импортировать только «75», которые нам нужны, но все же это очень грязно в нашем project file system, добавив 75 папок, большинство из которых имеют только один необходимый файл.Эффективный способ включения YUI3 в веб-приложение Java?

Есть ли более эффективный способ встраивания YUI3? Было бы неплохо, если бы я мог поместить файлы 75 "-min.js" в одну папку вместо одной папки за штуку, но я не уверен, что система обнаружения зависимостей YUI3 будет работать, если я это сделаю. Что-то вроде JQueryUI's Custom Builder, где я выбираю компоненты, которые я хочу, и вам нужно добавить только один файл, или просто несколько файлов для управления исходным кодом было бы идеальным. Мы уже используем JQueryUI для некоторых элементов, нам может понадобиться использовать его больше, если включение YUI3 не может быть менее обременительным в файловой системе.

+0

Вы можете использовать Конфигуратор http://yuilibrary.com/yui/configurator/ – juandopazo

ответ

0

Мы сделали именно это в нашем большом веб-приложении Java. Первым шагом было создание нового артефакта Maven под названием YUI. Он просто содержит весь выпуск YUI. У нас есть собственная репозитория maven, чтобы опубликовать ее, но если вы не используете Maven, вы можете просто поместить YUI в файл jar и включить его в свой проект.

Мы размещаем файлы в/META-INF/resources/yui в JAR, так как этот путь будет отображаться в Интернете в контейнерах, совместимых с Servlet 3.0, таких как Tomcat.

Это стоит посмотреть на проект WebJars, который упаковывает большое количество JS-фреймворков. Версия YUI, которой он располагает, устарела, но вы можете дать им толчок для ее обновления.

Это будет позволяют настроить YUI, чтобы выбрать файлы до этого нового места (используйте атрибут «базы», ​​описанный в loader documentation)

На данный момент, вы больше не будете полагаться на CDN, поэтому вы можете размещать через SSL просто отлично, что, я думаю, соответствует требованиям вопроса. Недостатком является то, что вы будете загружать отдельные файлы, а не использовать комбинированный загрузчик YUI.

Мы сделали, чтобы написать сервлет-загрузчик Servlet, который способен принимать компилятор YUI и обслуживать запрошенный модуль, объединенный вместе. Если файлы YUI находятся внутри JAR, вам нужно получить их оттуда, но это довольно просто.

Единственное предостережение в отношении написания собственного Combo Loader для размещения YUI - это размещение галереи. Недавние сборки галереи имеют жесткие ссылки на изображения в их CSS, которые указывают на их CDN. что вызовет проблемы с хостингом через SSL. Если вы не используете галерею, все хорошо.

 Смежные вопросы

  • Нет связанных вопросов^_^