我正在尝试在GWT中加载一个简单的图像。但它永远不会被发现。
import com.google.gwt.user.client.ui.Image;
public class ImageTest implements EntryPoint {
Image image = new Image("test.png");
}
结果:
[WARN] 404 - GET /test.png (127.0.0.1) 1394 bytes
Request headers
Host: 127.0.0.1:8888
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://127.0.0.1:8888/ImageTest.html?gwt.codesvr=127.0.0.1:9997
Response headers
Content-Type: text/html; charset=iso-8859-1
Content-Length: 1394
test.png
与ImageTest
类位于同一目录中。
我还试着把它放在src/main/resources
下面。同样的错误。
必须在哪里找到图片?
答案 0 :(得分:9)
您需要将它们放在webapp
目录中(在index.html
文件附近的GWT设置中指定为WAR目录。)
否则,您需要为resources/images/yourimg.png
指定src/main/webapp/resources/images/yourimage.png
之类的相对路径。
另一种方法是使用Client Bundle:
public interface AppBundle extends ClientBundle {
@Source("image.png")
ImageResource myImage();
public static final AppBundle INSTANCE = GWT.create(AppBundle.class);
}
然后在你的代码中:
AppBundle.INSTANCE.myImage();
在这种情况下,您的图像应放在与AppBundle类相同的包中。