5

在此处给出的示例中:

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

图像文件夹放在应用程序的 WEB-INF 目录中。

在我的 Vaadin Spring 应用程序中,我没有 WEB-INF 目录,所以我将 images 文件夹放在“resources”文件夹中。以下是“src/main/resources”和“target”内部的文件夹结构:

在此处输入图像描述

问题是我的应用程序无法访问那里的图像。我总是得到相同的“找不到文件”异常。

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

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 应用程序可以访问这些图像?

4

1 回答 1

7

您链接到的示例使用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")
于 2017-10-26T08:17:37.070 回答