1、默认静态资源映射规则
Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration类配置各种属性。
我们找到如下方法,发现在Spring Boot中静态资源映射默认会映射到classpath:/META-INF/resources/下的static、public、resources文件夹里面的静态资源,也就是说在这几个文件夹下面放入静态资源会被扫描到。
public String[] getStaticLocations() {
return this.staticLocations;
}
private String[] staticLocations = CLASSPATH_RESOURCE_LOCATIONS;
// 找到路径
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
"classpath:/META-INF/resources/",
"classpath:/resources/",
"classpath:/static/",
"classpath:/public/"
};
静态资源扫描优先级为:META-INF/resources > resources > static > public
为了演示我们在resources文件下创建static、public、resources文件夹,分别创建一个page.html文件。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
这是public下的静态资源!!!
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
这是resources下的静态资源!!!
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
这是static下的静态资源!!!
</body>
</html>
运行结果
2、自定义静态资源映射规则
在application.properties配置文件使用spring.web.resources.static-locations进行配置。
配置指定使用classpath:/public/下的资源
spring.web.resources.static-locations=classpath:public/