首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GWT中将ClientBundle的资源放在哪里?

在GWT中将ClientBundle的资源放在哪里?
EN

Stack Overflow用户
提问于 2013-05-02 21:55:55
回答 2查看 2.5K关注 0票数 2

我希望将静态资源排除在类树之外,但将它们放在src/main/resources树中。尽管它们应该使用与java类相同的路径找到,例如:

打包my.path.to;

代码语言:javascript
复制
class ResourceBundle extends ClientBundle {
  @Source("src/main/resources/my/path/to/ResourceBundle/myIcon.png")
  ImageResource myIcon();
}

我是否总是必须写入@source路径才能引用它们?或者,我是否可以以某种方式告诉ClientBundle只在与java类相同的目录中查找,但仅在资源中查找?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-02 22:10:09

默认情况下,它将在与您的java类相同的目录中查找。我通常将我的图形放在资源包的子包中。这保持了我的java的整洁和分离,并且我不需要做绝对路径。我相信../ relative路径也可以,如果你想这样做的话,但是对我来说,把图片放在资源的子包中似乎更干净。

com.vf.client.resources

com.vf.client.resources.images

com.vf.client.resources.css

代码语言:javascript
复制
/**
 * Draggable cursor icon.
 * 
 * <br />
 * Example
 * 
 * <img src="images/cursorDragArrowSmall.png" />
 * @return ImageResource 
 */
@Source("images/cursorDragArrowSmall.png")
ImageResource cursorDragArrowSmall();
票数 2
EN

Stack Overflow用户

发布于 2013-05-02 23:22:56

如果您不使用@Source注释ImageResource,则ImageResourceGenerator将通过ResourceGeneratorUtil.findResources()使用相对于ClientBundle包的路径,附加方法名称并使用一组默认扩展来解析ImageResource源路径(这些扩展依次为: png、jpg、gif、bmp;请参阅ImageResource是如何通过@DefaultExtensions注释的)。

因此,如果您将图像放到ClientBundle的同一个包中,它们将自动解析,甚至不需要使用@Source注释。如果您有名称相同但扩展名不同的图像,则根据前面的顺序选择第一个。

我不是一个maven用户,但是如果你在src/main/resources中保持相同的包结构,你的图片也会以同样的方式被提取出来。不过从来没试过。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16339944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档