我是第一次使用GWT ClientBundle。我编写了扩展它的接口,代码如下:
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)在我想要的目录中,但应该有指定它的机制-(将是很棒的)?
谢谢。
发布于 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")。您可能会使用绝对路径,但请确保将它们存储在静态变量中并在资源之间共享,这样它就可以很容易地被覆盖;)
发布于 2013-03-06 23:09:24
与伊戈尔的观点类似:
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中,而不管它们是否被使用。
https://stackoverflow.com/questions/3447311
复制相似问题