Использование ресурсов изображений ClientBundle в CSS-URL
Я создаю приложение в GWT и у меня есть обложка от моего графического дизайнера, которую я подключил к приложению с помощью UIBinder, и она прекрасно работает. Теперь я хочу связать все изображения с помощью ClientBundle.
Mayne из этих изображений используются в файле CSS, например
.nav{background:url(nav_bg.jpg) левый верхний повтор-x; высота:27px; ясно: то и другое;}
Перед этим CSS я определил тег для включения в комплект.
Как я могу изменить запись CSS, чтобы она использовала ImageResource из моего ClientBundle? Я думаю, что я могу сделать встроенные стили для всех тегов HTML, но это ужасное разделение и много дополнительной работы.
Я успешно использовал ImageResources в html-части файла uibinder (например, в a), но я не вижу, как это сделать в css. Я даже вставил CSS в блок, но я все еще не вижу правильный способ сделать это.
Какие-либо предложения?
2 ответа
ClientBundles теперь также могут использоваться для размещения CssResources. Эти CssResources являются файлами CSS с некоторыми дополнительными функциями.
Документы GWT описывают то, что вам нужно в разделе об ImageSprites.
В итоге я пропустил GWT css и пакет изображений. Вместо этого я сделал свою вырезку, используя блок изображения css sprited, созданный командой design/carve. Это имеет эти преимущества.
1 / Гораздо меньше портирования css, так как я могу подключить html напрямую в связыватель пользовательского интерфейса и использовать теги css из резьбы, т.е. не используя uibinder css. До тех пор, пока html-структура соответствует carve, это намного меньше, чем перенос всех CSS в gwt css.
2 / Это также позволяет мне использовать svn/diff при применении изменений - это было невозможно при использовании gwt css / image spriting.
3 / Я легко могу поместить файлы image/css в CDN, поскольку теги загрузки находятся на странице хоста и не страдают от ограничений одного источника. К вашему сведению: да, я знаю о компоновщике XS как о другом способе сделать это.
Он перестает быть полезным, когда carve использует css для позиционирования, и я хочу использовать LayoutPanels, но это не так уж и плохо, если я запрашиваю, чтобы макет css был отделен от стиля css.
Итак, в конце концов я обнаружил, что при работе с design/carve от стороннего разработчика гораздо проще избежать использования gwt css / images, но воспроизвести те же преимущества, используя традиционный спрайсинг css и минификацию. Я надеюсь, что это помогает кому-то.