完美解决SpringBoot上传图片之后,需要重服务才能访问

完美解决SpringBoot上传图片之后,需要重服务才能访问

1.问题描述:

系统采用的架构,是采用SpringBoot+SSM+SpringSecurity+JWT

前端是小程序端或者PC的前端 Vue。当在前端上传图片之后,上传到指定的idea后端里面(这个版本没有使用云存储,是存储在本地文件里面)

如图所示:
上传位置
图片在/resources/static/upload 下面已经上传成功,但是在target里面没有,需要刷新idea或者重起之后才能有。由于target没有图片,当我们

访问 http://ip地址:端口号/static/upload/sdfasdfas1231231.png 这种图片就访问不到的。

  1. 出现原因

这样导致的原理是服务器的保护措施导致的,服务器不能对外部暴露真实的资源路径,需要配置虚拟路径映射访问

3 解决办法

解释: /static/upload/** 映射到 XXXXXX\src\main\resources\static\upload\这个路径下面。访问

http://static/upload/123134243243.png 相当于访问 XXXXXX\src\main\resources\static\upload\123134243243.png

所有能够访问到图片。

具体的代码如下:

@Configuration
public class FileUploadConfig implements WebMvcConfigurer {d

    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //获取文件的真实路径
        String path = System.getProperty("user.dir")+"\\src\\main\\resources\\static\\upload\\";
        //static/upload/**是对应resource下工程目录
        registry.addResourceHandler("/static/upload/**").addResourceLocations("file:"+path);
     }
}

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值