目录

使用 WebMvcConfigurer 解决 Spring Boot 外部资源访问问题

Spring Boot 外部资源访问解决方案

问题重现

上传并保存到本地的图片无法调取访问,资源 404,图片保存于项目外部文件夹,比如 D:\files\img 目录下。

解决方案

WebMvcConfigurer 是一个接口,提供很多自定义的拦截器,例如跨域设置、类型转化器等。如果仅自定义静态资源映射目录,只需覆写 addResourceHandlers 方法即可。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
@Configuration
public class MyWebConfig implements WebMvcConfigurer {

    private String filePath = "file:D:/files/img/";

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations(filePath);
    }
}

以上是一个示例,其中有两个重要属性:

  • addResoureHandler:指的是 对外暴露 的访问路径
  • addResourceLocations:指的是 内部文件 放置的目录

可实现使用 / 代理 filePath 目录下的所有内容,通过以下 HTML 代码,将文件名替换 item 值就可访问到相应图片。

1
<img src="/${item}" alt="${item}" />