首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在GWT中使用ClientBundle?

如何在GWT中使用ClientBundle?
EN

Stack Overflow用户
提问于 2010-08-10 16:50:37
回答 2查看 12.5K关注 0票数 22

我是第一次使用GWT ClientBundle。我编写了扩展它的接口,代码如下:

代码语言:javascript
复制
package edu.etf.fuzzy.client.login;

import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.ImageResource;

public interface Resources extends ClientBundle {

 @Source("logo_federacija.jpg")
 ImageResource logo();

 @Source("shim.gif")
 ImageResource shim();
}

我的问题是:我如何知道在哪里可以找到这些资源(在本例中是图片)。我应该把它们: a)和interface放在同一个目录下吗-(丑陋的)?b)在某个永远不能更改的特定目录中?c)在我想要的目录中,但应该有指定它的机制-(将是很棒的)?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-10 20:05:51

我通常为资源创建一个新的包(com.example.project.resource),并将ClientBundle接口和适当的资源放在那里(放在一起,就像在一个目录中)-它是一个java文件加上一堆图像,不需要进一步分离,IMHO。

至于资源的路径-您可以通过@Source("path")注释传递它们。例如,如果您的ClientBundle接口是com.example.project.resource格式的,图像是com.example.project.images格式的,那么您应该编写@Source("../images/shim.gif")。您可能会使用绝对路径,但请确保将它们存储在静态变量中并在资源之间共享,这样它就可以很容易地被覆盖;)

票数 24
EN

Stack Overflow用户

发布于 2013-03-06 23:09:24

与伊戈尔的观点类似:

代码语言:javascript
复制
com.yoursite.resources: YourClientBundle.java
com.yoursite.resources.css: YourCssResource.java
com.yoursite.resources.images: image files here

这里的关键是,如果您不使用资源(CSS/Image/Text),GWT编译器将忽略它。这可以防止战争膨胀,因为你的应用程序得到了持有者,你有数百个图像,并且不确定哪些使用了哪些没有使用。

如果您使用删除public/images文件夹中的所有内容的选项,那么所有项都将包含在您的应用程序war中,而不管它们是否被使用。

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

https://stackoverflow.com/questions/3447311

复制
相关文章

相似问题

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