0

我有一个扩展 ClientBundle 并定义 CssResource 的类。我想在模板 Uibinder 中使用它作为面板的 css 属性(这将是背景。但在运行期间未显示图像。按照代码:

图片.css:

 .backgroundPage {
    background-image: url("../resources/Universe-Big-Planet.jpg");
    background-repeat:no-repeat;
/*     background-color: red; */
}

BundleResouces.java:

public interface BundleResources extends ClientBundle {

    public final BundleResources IMPL= (BundleResources) GWT.create(BundleResources.class);

    @Source("../resources/Universe-Big-Planet.jpg")
    ImageResource universeBigPlanet();

    @Source("../resources/Wood_blue.jpg")
    ImageResource woodBlue();

    @Source("Images.css")
    MyStyle mystyle();

    public interface MyStyle extends CssResource{
        String backgroundPage();
    }
}

Home.ui.xml(模板):

<ui:with field='res' type='it.myproject.movieuniverse.client.bundle.BundleResources'/> 
.............................
</ui:style>
    <g:DockLayoutPanel ui:field="background" unit="PX" styleName="{res.mystyle.backgroundPage}">

主页.java:

public Home() {
    initWidget(uiBinder.createAndBindUi(this));
            Window.addResizeHandler(resizeHandler);
            resizeWidget();
            BundleResources.IMPL.mystyle().ensureInjected();
        }   

如果我尝试使用 background-color: red 它可以工作,因此 css 被正确指向。不知道怎么解决,谢谢!

4

1 回答 1

0

如果它尝试加载此图像,请检查您的浏览器。很可能,路径是错误的。

该路径应该指向服务器上可公开访问的图像,而不是像使用 ImageResource 时那样在您的开发环境中。

在您的代码中,您根本没有使用 ImageResource。如果您打算使用它,则无需在 CSS 中指定路径。

于 2015-06-16T16:59:39.580 回答