Ссылка на изображение в CSS с помощью Wicket
Вопрос
За отличный ответ на другой вопрос я начал монтировать глобальные ресурсы (css / js / images) в методе init()
моего веб-приложения. Используя следующее:
mountSharedResource("/images/edit-btn.gif", new ResourceReference(GlobalResource.class, "edit-btn.gif").getSharedResourceKey());
Это, конечно, позволяет css в другом пакете делать что-то вроде этого:
background-image: url("/images/edit-btn.gif");
Проблема, с которой я столкнулся, заключается в том, что это работает только во время выполнения, смонтированный путь является виртуальным. Одним из больших преимуществ Wicket (imo) были функции (<wicket:remove>
, допустимые теги xml, заголовки ссылок, наследование страниц), которые позволяли дизайнеру страниц, работающему с макетом, иметь возможность визуализировать страницу с ее изображениями, js, css и т. д. без необходимости запуска в калитке.
Я полностью согласен с тем фактом, что между ролями дизайнера и программиста в веб-приложениях никогда не бывает четкой границы, но мне кажется странным, что дизайнеры Wicket пропустили это. Можно ли как-нибудь разрешить глобально используемому изображению визуализировать как автономно, так и работать во время выполнения в Wicket?
Решение
Я думаю, рекомендуемый способ - возьмите html у ваших дизайнеров и включите их в компоненты калитки - это означает, что вы разбьете его на несколько файлов. Рендеринг этих частичных файлов не будет работать без каких-либо дополнительных усилий. Я бы порекомендовал установить простой скрипт, инструмент или что-нибудь в этом духе, которое запустит ваше веб-приложение для ваших дизайнеров. Таким образом, они могут изменить фрагменты и сразу увидеть обновленный рендеринг. Вам нужно будет договориться об общей структуре и сказать им, как использовать <wicket:remove>
, и у вас все будет хорошо.