我正在尝试使用UIBinder构建一个gwt网站。它很酷,它有效,但我对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。
那里有人有同样的问题吗,并且愿意帮助我吗?
谢谢!
答案 0 :(得分:5)
如果您的应用程序css在ClientBundle的其他位置引用,您可以完全使用并避免路径问题。请参阅Using an external resource。
答案 1 :(得分:1)
老问题,但是; 我简单地引用了这样的全局样式,没有ui:style指令:
g:TabPanel ui:field =“tabPanel”width =“100%”height =“90%”styleName =“nameInMyMainCss”
这相当于调用setStyleName(“nameInMyMainCss”);在匹配的java类中。
答案 2 :(得分:0)
您应该考虑这是否真的是您想要做的。 UiBinder通过ClientBundle机制使用css,该机制优化了css,模糊了样式名称,然后将样式作为已编译的javascript代码的一部分嵌入。如果您还以传统方式使用相同的css文件(带有<link>
标记),那么您需要用户两次下载相同的css规则。在实践中,滞后可能不会太明显,但原则上它有点差。
无论如何这是不可能的,因为ClientBundle(以及UiBinder)仅适用于源文件夹中的css文件。正如gk5885所说,您可以创建一个ClientBundle,并通过将其包含在UiBinder模板中来在项目范围内使用它。您应该考虑将尽可能多的css移动到此系统中。