GWT / UIBinder, как найти основной файл CSS с помощью <ui: style> - PullRequest
6 голосов
/ 16 сентября 2010

Я пытаюсь создать сайт GWT с UIBinder. Это круто, это работает, но у меня проблема с ui: style.

Мой проект mavenized (я использую архетип gwt-maven-plugin).

Файлы Application.html и Application.css находятся в каталоге src / main / resources / com / foo / bar / public.

Страница, которую я пытаюсь стилизовать, находится в src / main / java / com / foo / bar / client / Page1.java и Page1.ui.xml.

Я могу использовать файл CSS, если он находится в одном пакете с:

<ui:style src="Page1.css" />

Но я бы хотел использовать Application.css (чтобы я не использовал одинаковые стили в каждом CSS-файле в каждом пакете)

Я пробовал разные относительные пути, и файл Application.css не найден.

Есть ли кто-то, у кого была такая же проблема, и хотел бы помочь мне?

Спасибо!

Ответы [ 3 ]

5 голосов
/ 17 сентября 2010

Если на ваше приложение css ссылаются в другом месте в ClientBundle, вы можете использовать его и вообще избежать проблем с путями. См. Использование внешнего ресурса .

1 голос
/ 15 октября 2013

Старый вопрос, но; Я просто ссылался на такой глобальный стиль без директивы ui: style:

g: TabPanel ui: field = "tabPanel" width = "100%" height = "90%" styleName = "nameInMyMainCss"

Это эквивалентно вызову setStyleName ("nameInMyMainCss"); в соответствующем классе Java.

0 голосов
/ 17 сентября 2010

Вы должны подумать о том, действительно ли это то, что вы хотите сделать.UiBinder использует css через механизм ClientBundle, который оптимизирует css, скрывает имена стилей, а затем встраивает эти стили как часть вашего скомпилированного кода JavaScript.Если вы затем используете тот же файл CSS традиционным способом (с тегом <link>), то вы требуете, чтобы ваши пользователи дважды загружали одни и те же правила CSS.На практике задержка может быть не слишком заметной, но в принципе она немного бедна.

В любом случае это невозможно, поскольку ClientBundle (и, следовательно, UiBinder) работает только с файлами CSS в ваших исходных папках.Как говорит gk5885, вы можете создать один ClientBundle и использовать его для всего проекта, включив его в свои шаблоны UiBinder.Вы должны рассмотреть возможность перемещения в эту систему как можно большего количества CSS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...