未显示在我的子模块background-image属性我想在运行时注入的CSS:GWT:在注入外部CSS文件
public interface Resources extends ClientBundle
{
Resources INSTANCE = GWT.create(Resources.class);
@Source("pagedown.css")
@NotStrict
CssResource css();
}
从Java我使用Resources.INSTANCE.css().ensureInjected();
和它工作得很好,除了图像不显示,在pagedown.css中:
.wmd-button>span {
background-image: url(pagedown/wmd-buttons.png);
background-repeat: no-repeat;
background-position: 0px 0px;
}
原因是因为没有办法找到图像。上面的代码是在我的子项目(子模块)重用,我必须将图像复制到我的应用程序项目,以使其工作,它是相当繁琐和破解封装,有没有办法解决这个问题?
EDIT
如果我改性上述CSS来background-image: url(myapp/pagedown/wmd-buttons.png)
;它只会工作,但是,因为这个CSS是在子项目中,永远不知道我的应用程序项目的名称,所以如果我硬编码这样,有一天我有另一个项目使用这个组件,我必须修改它myOtherApp/pagedown/wmd-buttons.png
,您可以看到两个项目发生冲突,并且无法同时使用我的组件。 谢谢。
我不知道在运行时注入样式的这种方法,但在GWT中,我通过直接从java类本身为组件设置style属性来完成此操作。 Widget.getElement()。getStyle()。setProperty(“camel-case格式的样式属性”,“样式值”); 在你的情况下不可用吗? – Dipak
如果你想要详细的示例代码,请让我知道。 – Dipak
在制作你的战争文件时,请确保你的子项目中的所有图像都在war/images目录下...... –