В отличном ответе от другого question Я начал устанавливать глобальные ресурсы (css/js/images) в методе моего WebApplication init()
. Используя следующее:Ссылка на изображение в CSS с Wicket
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?
Я не очень рад этому решению, но это единственное, что я получил, чтобы работать. У меня есть небольшой скрипт, который они могут запустить, чтобы проверить его сейчас. – Scanningcrew
В качестве дополнительной идеи вы могли бы использовать функцию предварительной обработки ресурсов wicketstuff-merged-resources для изменения патчей в файлах CSS во время выполнения (например, с «edit-btn.gif» до «/images/edit-btn.gif»). Я бы не рекомендовал этого. – sfussenegger