Использование с gwt Uibinder css с установленным фоновым изображением

У меня есть класс, который расширяет ClientBundle и определяет CssResource. Я хочу использовать его в шаблоне Uibinder как свойство css для панели (это будет фон. Но во время работы изображение не отображается. Следуя коду:

Image.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}">

Home.java:

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

Если я попытаюсь использовать background-color: red, он работает, поэтому css указан правильно. Не знаю, как решить, спасибо!


person anto150192    schedule 16.06.2015    source источник
comment
Вы уверены, что фоновое изображение доступно по указанному пути?   -  person cybersoft    schedule 16.06.2015
comment
Я вижу, что у вас одно изображение в классе ресурсов и в стилях. Если вы хотите использовать изображение, указанное в интерфейсе, вы должны установить изображение напрямую, используя IMPL в коде.   -  person cybersoft    schedule 16.06.2015
comment
Какой смысл иметь ImageResource в вашем ClientBundle, если вы никогда их не используете?   -  person Andrei Volgin    schedule 16.06.2015


Ответы (1)


Проверьте в своем браузере, пытается ли он загрузить это изображение. Скорее всего, путь неправильный.

Путь должен быть к общедоступному изображению на сервере, а не в вашей среде разработки, как в случае использования ImageResource.

В вашем коде вы вообще не используете ImageResource. Если вы планируете использовать его, вам не нужно указывать путь в CSS.

person Andrei Volgin    schedule 16.06.2015