我在基于openshift的应用程序中加载图像文件时遇到了一些问题。 我用这段代码加载图片:
private Image rankImage = new Image();
FileResource resource = new FileResource(new File(VaadinService
.getCurrent().getBaseDirectory().getAbsolutePath()
+ String.format("/WEB-INF/images/level%d.png", user.getRank().getLevel())));
rankImage.setSource(resource);
它可以在我的本地服务器上运行。在浏览器中,此图像如:
src="http://localhost:8080/ROOT/APP/connector/1/47/source/level1.png"
但是,在openshif应用程序中,它没有工作,看起来像:
src="http://<my-app-name>/APP/connector/0/17/source/level1.png"
存储在/WEB-INF/images/image-name.png中的图像 我怎么能解决这个问题?
答案 0 :(得分:1)
我解决了这个问题。解决方案是:
<强>的pom.xml 强>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="...">
...
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<!-- ADD THIS -->
<resource>
<directory>src/main/webapp/WEB-INF</directory>
</resource>
</resources>
...
</build>
</project>
<强>的java.class 强>
private Image rankImage = new Image();
rankImage.setSource(new ClassResource(String.format("/images/level%d.png", 1)));
存储的图像:
WEB-INF
|_images
|_level1.png
|_level2.png
|_level3.png