如何从WEB-INF目录加载图像[Openshift:Vaadin]

时间:2014-12-28 10:21:00

标签: java tomcat resources vaadin openshift

我在基于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中的图像 我怎么能解决这个问题?

1 个答案:

答案 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