我使用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();
}

我的问题是:我怎么知道究竟在何处,这些资源(在这种情况下,图像)都可以找到。我应该把它们: 一)在同一目录界面 - (丑陋的)? B)在一些特定的目录中,从来没有可以改变? C)在目录中,我想,但应该有机制,指定它 - (将是巨大的)

感谢您。

有帮助吗?

解决方案

我通常创建的资源的新的包(com.example.project.resource)并把ClientBundle接口和相应的资源有(一起,如在一个目录) - 它是一个Java文件再加上一堆图像,无需进一步分离, IMHO。

至于路径的资源 - 你可以通过@Source("path")注释传递它们。例如,如果你有ClientBundle和图像com.example.project.resourcecom.example.project.images接口,那么你会写@Source("../images/shim.gif")。你也许可以使用绝对路径,但要确保你将它们存储在一个静态变量和共享之间的资源,所以它可以很容易地覆盖;)

其他提示

要伊戈尔的点类似的:

com.yoursite.resources: YourClientBundle.java
com.yoursite.resources.css: YourCssResource.java
com.yoursite.resources.images: image files here

这里的关键是,如果你不消耗资源(CSS /图像/文本),GWT编译器会忽略它。这可以防止的战争膨胀的为您的应用程序获得持有人,你已经有了数百张照片,并不能确定其使用的,哪些不是。

如果您使用在公共/图像放弃所有的选项的文件夹,然后将所有的项目将包括在应用程序的战争,无论它们是否正在使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top