springboot项目中解决SpringBoot上传图片后访问不到的问题

1.解决SpringBoot上传图片后访问不到的问题

  1. 问题描述
    前后端不分离项目
    前端:thymeleaf
    后端:mybatis+springboot架构
    在前端上传图片之后,上传到指定的本地路径
    路径为:idea项目下的 resources/static/upload/img/**
    已经上传成功,文件夹里面也有访问 http://ip地址:端口号/路径/xxx.png 这种图片是访问不到的。

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

  3. 解决办法:

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
  //  /upload/**   为虚拟地址
  //file:///为真实的本地地址
  registry.addResourceHandler("/upload/**").addResourceLocations("file:///"+System.getProperty("user.dir")+"/src/main/resources/static/upload/img/");
        WebMvcConfigurer.super.addResourceHandlers(registry);

    }
}

2. 第二种解决方案

spring.web.resources.static-locations=classpath:/static/,file:${upload.dir}
upload.dir = G:/2021_12_8/easypoi_springboot/src/main/resources/static/upload/img

classpath:代表你当前静态资源存放位置
upload.dir:代表你的图片存放的真实路径
http://localhost:ip/图片名称 即可访问图片
springboot项目中解决SpringBoot上传图片后访问不到的问题_第1张图片

你可能感兴趣的:(springboot,spring,boot,java,mybatis)