java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot获取resources下静态文件时遇的坑

SpringBoot项目中获取resources下静态文件时遇到的坑及解决

作者:齐 飞

文章总结:在项目中使用静态图片时,遇到jar包部署到linux服务器报错的问题,解决方法包括将图片上传到服务器指定文件夹或使用ClassPathResource读取,前者需要维护,后者更方便

问题

在项目中需要使用到静态图片,将静态图片放在resources文件夹下。

本地使用this.getClass().getResource()读取静态图片一切正常,成功读取到静态图片。

但是将项目打jar包部署到linux服务器时发送报错,

打印发现路径为:

file:/shop-1.0-SNAPSHOT.jar!/BOOT-INF/classes!/static/color.png

解决方法

1. 上传到服务器指定的文件夹下

可以将图片等需要读取的静态文件放到服务器指定的文件夹下 进行读取。

缺点就是需要进行维护,在不同的环境发布到不同的服务器上,每个服务器中都要上传一份;如果误删或者迁移项目忘记迁移这个文件就麻烦了。

2. 使用ClassPathResource读取

ClassPathResource classPathResource = new ClassPathResource("/static/color.png");
InputStream inputStreamImg = classPathResource.getInputStream();
BufferedImage bmp = ImageIO.read(inputStreamImg);

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文