Я хотел бы задать вам вопрос, связанный с еще один вопрос, который я задавал несколько раз назад (к сожалению, без ответа :( )
Представьте, что ваш проект разделен на несколько веб-приложений. У вас также есть много общих ресурсов (JS, CSS, изображения). Идея состоит в том, чтобы избежать дублирования в каждом веб-приложении, так как вам придется синхронизировать свои изменения между всеми веб-приложениями.
Так что лучше иметь эти ресурсы в одном месте.
Если я взгляну на проект Richfaces, все их ресурсы управляются JSF. Например, компонент <rich:calendar>
отображает небольшой значок. Если мы посмотрим на HTML-код этого изображения, то увидим, что атрибут src
относится к ссылке jsf
, а не напрямую к .png
:
<img src="/richfaces-demo/a4j/g/3_3_3.Finalorg.richfaces.renderkit.html.iconimages.CalendarIcon/DATB/eAH7cW0fw6znAA8XBA4_.jsf"
style="vertical-align: middle" id="j_id354:j_id355PopupButton" class="rich-calendar-button " alt="">
Я вижу следующие преимущества такого подхода:
- Включите ресурсы в классическую библиотеку (т. е. в JAR), что упрощает развертывание в Eclipse;
- Разрешить создание динамического файла (т. е. CSS или JS, который содержит только необходимые свойства);
- Разрешить включение только необходимых ресурсов (например, мы не будем загружать файл CSS, если он не требуется компонентом на странице).
Что касается моего приложения, мне понадобится только первый пункт, но он действительно важен для меня (см. Мой другой связанный вопрос о SO).
Основным недостатком этого решения является то, что браузер не сможет кэшировать ресурсы, поскольку они рассматриваются как запросы JSF. Кроме того, каждый из этих запросов должен будет пройти через весь жизненный цикл JSF, что может быть проблемой производительности, если важно количество ресурсов на текущей странице...
Вопросы
- Что вы думаете об этом подходе?
- Как вы это сделаете? Я уже использовал веблеты несколько лет назад, но этот проект, похоже, поддерживается с 2006 года. Веб-сайт URL возвращает 404, но версия 0.4 может быть находится в глобальном репозитории Maven.
- Видите ли вы какое-либо другое решение моей проблемы?
Спасибо.