【问题标题】:How i can load image from WEB-INF dir [Openshift:Vaadin]我如何从 WEB-INF 目录加载图像 [Openshift:Vaadin]
【发布时间】:2014-12-28 10:21:00
【问题描述】:

我在基于 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 我该如何解决这个问题?

【问题讨论】:

    标签: java tomcat resources vaadin openshift


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多