Vaadin Spring Application无法访问的图像

时间:2017-10-23 20:31:48

标签: java image spring-boot vaadin-spring-boot

在此处给出的示例中:

https://vaadin.com/docs/framework/application/application-resources.html

images-folder放在应用程序的WEB-INF目录中。

在我的Vaadin Spring应用程序中,我没有WEB-INF目录,因此我将images文件夹放在" resources"而是文件夹。这是" src / main / resources"里面的文件夹结构。在"目标"内部看起来像:

enter image description here

问题是我的应用程序无法访问那里的图像。我总是得到同样的#34;文件未找到"例外。

我尝试了不同的路径描述,其中包括以下内容:

VaadinService.getCurrent().getBaseDirectory().getAbsolutePath() + "images/pic.png"

VaadinService.getCurrent().getBaseDirectory().getAbsolutePath() + "/classes/images/pic.png"

VaadinService.getCurrent().getBaseDirectory().getAbsolutePath() + "/target/classes/images/pic.png"

VaadinService.getCurrent().getBaseDirectory().getAbsolutePath() + "/applicationName/target/classes/images/pic.png"

......什么都没有用!!

如何让我的Vaadin Spring应用程序可以访问这些图像?

1 个答案:

答案 0 :(得分:6)

您关联的示例使用FileResource。它不适用于jar包装的资源。

最好,您可以将图片放入src/main/resources/VAADIN/themes/{theme}/并使用ThemeResource:

// Image as a file resource
FileResource resource = new ThemeResource("images/image.png");

或者,将您的资源放到src / main / resources /然后从类路径访问它:

getClass().getResourceAsStream("/images/image.png")