SpringBoot 自定义静态资源映射目录(配置addResourceHandler和addResourceLocations映射静态资源地址)

在SpringBoot中,自定义静态资源映射目录

编写项目时通常将静态资源放置在resources目录

resources目录又可以根据具体的使用途径分为的public、static、template 等目录
SpringBoot 自定义静态资源映射目录(配置addResourceHandler和addResourceLocations映射静态资源地址)_第1张图片
但是当你将SpringBoot项目打包为 war 包时,将会把图片等项目中所有的静态资源全都打包进去,这显然对于发布维护是非常不方便的,因此我么可以将静态资源放置在服务器的某些磁盘中,并通过SpringBoot进行访问

这里简单举个栗子

编写一个类,继承WebMvcConfigurer 类,重写addResourceHandlers 方法

先上代码,这里的addResourceHandler 是用来设置访问路径的,也就是通过浏览器访问时输入的地址

http://localhost:8443/tryYiTry/具体文件名称

addResourceLocations 是设置的资源映射路径,也就是在磁盘中的真实地址

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @author Mi
 * @version 1.0
 * @description: TODO
 * @date 2022/4/17 9:47
 */
@Configuration
public class SpringWebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/tryYiTry/**").addResourceLocations("file:C:/Users/Mi/OneDrive/桌面/图片/");
        //registry.addResourceHandler("/tryYiTry/**").addResourceLocations("file:C:\\Users\\Mi\\OneDrive\\桌面\\图片/");
    }
}

例如此处,设定静态资源存放的磁盘目录为 “图片”文件夹
那么对应的在磁盘中的路径即为

C:\Users\Mi\OneDrive\桌面\图片

相应的addResourceLocations中的路径就要设置为

file:C:/Users/Mi/OneDrive/桌面/图片/
或者
file:C:\\Users\\Mi\\OneDrive\\桌面\\图片/

注意:这两种都可以成功访问,但是路径必须以“ / ”结尾

SpringBoot 自定义静态资源映射目录(配置addResourceHandler和addResourceLocations映射静态资源地址)_第2张图片

启动项目在浏览器中尝试一下,
SpringBoot 自定义静态资源映射目录(配置addResourceHandler和addResourceLocations映射静态资源地址)_第3张图片
即,成功访问到该图片
SpringBoot 自定义静态资源映射目录(配置addResourceHandler和addResourceLocations映射静态资源地址)_第4张图片

你可能感兴趣的:(Web,spring,boot,web)