Vaadin Spring 应用程序无法访问图像
images not accessible by Vaadin Spring Application
在此处给出的示例中:
https://vaadin.com/docs/framework/application/application-resources.html
图像文件夹放在应用程序的 WEB-INF 目录中。
在我的 Vaadin Spring 应用程序中,我没有 WEB-INF 目录,所以我将图像文件夹放在 "resources" 文件夹中。 "src/main/resources" 和 "target" 内部的文件夹结构如下所示:
问题是我的应用程序无法访问那里的图像。我总是得到相同的 "File not found" 异常。
我尝试了不同的路径描述,其中包括:
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 应用程序可以访问这些图像?
您链接到的示例使用 FileResource
。它不适用于 jar 打包的资源。
最好,你可以把你的图片放在src/main/resources/VAADIN/themes/{theme}/
中并使用主题资源:
// Image as a file resource
FileResource resource = new ThemeResource("images/image.png");
或者,将您的资源放入 src/main/resources/,然后从类路径访问它:
getClass().getResourceAsStream("/images/image.png")
在此处给出的示例中:
https://vaadin.com/docs/framework/application/application-resources.html
图像文件夹放在应用程序的 WEB-INF 目录中。
在我的 Vaadin Spring 应用程序中,我没有 WEB-INF 目录,所以我将图像文件夹放在 "resources" 文件夹中。 "src/main/resources" 和 "target" 内部的文件夹结构如下所示:
问题是我的应用程序无法访问那里的图像。我总是得到相同的 "File not found" 异常。
我尝试了不同的路径描述,其中包括:
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 应用程序可以访问这些图像?
您链接到的示例使用 FileResource
。它不适用于 jar 打包的资源。
最好,你可以把你的图片放在src/main/resources/VAADIN/themes/{theme}/
中并使用主题资源:
// Image as a file resource
FileResource resource = new ThemeResource("images/image.png");
或者,将您的资源放入 src/main/resources/,然后从类路径访问它:
getClass().getResourceAsStream("/images/image.png")