在以前开发项目的时候静态文件放在src/main/webapp,而springboot默认的静态文件的路径是在classpath:[/META-INF/resources/,/resources/, /static/, /public/]。
看一个demo:
在resources下面新建一个public文件夹,文件夹下面新建一个login.html,一个css文件夹(文件夹下面新建main.css),一个js文件夹(文件夹下面新建web.js)
login.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link href="css/main.css" media="screen" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/web.js"></script>
</head>
<body>
<h1>public login html page</h1>
</body>
</html>
login.html中引入web.js和main.css,如果配置静态文件生效,那么js文件和css文件将都会生效。
web.js:
alert('spring boot static resources');
main.css:
body {color: red;}
启动类启动:
package com.zhihao.miao;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
发现css和js都生效了。
我们看源码分析,org.springframework.boot.autoconfigure.web.ResourceProperties这个类,
自定义静态资源路径
spring.resources.static-locations=classpath:/html/
在resources下面新建html文件夹,下面reg.html静态资源,然后启动启动类,进行访问,发现访问成功,则说明配置正确了。
总结
spring boot 如何处理静态资源
- src/main/webapp目录下,就可以直接访问
- 默认的静态资源的路径是:classpath:[/META-INF/resources/,/resources/, /static/, /public/]
- 可以通过spring.resources.staticLocations配置项修改默认静态资源路径