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

1.问题描述:

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

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

如图所示:


1.1图 上传图片路径图

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

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

2. 出现原因

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

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 {

    public void addResourceHandlers(ResourceHandlerRegistry registry) {

      //获取文件的真实路径

        String path = System.getProperty("user.dir")+"\\src\\main\\resources\\static\\upload\\";

        //添加映射

        registry.addResourceHandler("/static/upload/**").addResourceLocations("file:"+path);

       }

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容