在此处给出的示例中:
https://vaadin.com/docs/framework/application/application-resources.html
images-folder放在应用程序的WEB-INF目录中。
在我的Vaadin Spring应用程序中,我没有WEB-INF目录,因此我将images文件夹放在" resources"而是文件夹。这是" src / main / resources"里面的文件夹结构。在"目标"内部看起来像:
问题是我的应用程序无法访问那里的图像。我总是得到同样的#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应用程序可以访问这些图像?
答案 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")