Использование ресурса изображения ClientBundle в чистом элементе HTML в UIBinder

На основе следующих ресурсов:

http://www.gwtproject.org/doc/latest/DevGuideClientBundle.html

Использовать изображение ClientBundle в качестве фонового изображения

Я успешно реализовал ресурс изображения GWT <g:Image> в шаблоне UIBinder:

<ui:with field='res' type='com._.client.resources.Resources'></ui:with>
<g:Image resource="{res.menuLogo}" altText="" styleName="{style.menuLogo}"/>

Однако я пытаюсь добавить изображение в качестве дочернего элемента <g:MenuItem>, который в GWT может иметь только чистые элементы HTML в качестве дочерних:

<g:MenuItem>
    <img id="revealIcon" src="images/trianglebuttonWHITE-DOWN.png" width="11"/>
</g:MenuItem>

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

Моя цель - обрабатывать все ресурсы через ClientBundle и избегать их наличия в каталоге WAR.

Могу ли я ссылаться на ресурс ClientBundle для чистого <img> изображения HTML?

Должен ли я делать это программно и / или с помощью CSS Image Sprites?


person PAINKILLER    schedule 16.07.2014    source источник


Ответы (1)


<img id="revealIcon" src="{res.menuLogo.getSafeUri}" width="11"/>

Обратите внимание, что в целях безопасности вы должны использовать DataResource, а не ImageResource, потому что технически ImageResource может быть объединен с другими изображениями и представлять только одну область более крупного "спринтового" изображения (в этом случае ImageResource будет экземпляр ImageResourcePrototype.Bundle, но проверить его в UiBinder невозможно).

person Thomas Broyer    schedule 17.07.2014