1、开发web项目(静态资源html css js)
-new-spring starter -设置(选择 需要的场景,web)
spring boot 是一个jar,因此,静态资源就不是在存放到webapps中,存放在哪里?
- 静态资源的存放路径是通过WebMvcAutoConfiguration类-addResourceHandlers(指定).
- spring boot将静态资源存入到jar包中,引入三方静态资源可以:从jar目录结构的web jars开始写:localhost:8080?webjars/jquery/3.3.1-1/jquery.js
如何自己写静态资源,如何放到spring boot中?
- 方法1:将自己写的静态资源打成jar包,然后同上方法引入
- 方法2(推荐)spring boot约定:spring boot将一些目录结构设置成静态资源存放目录,我们的静态资源直接放入这些目录既可。目录在哪里呢?
- ResourceProperties 类中的CLASSPATH_RESOURCE_LOCATIONS设置
-
"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"
注意:在以上目录存放资源文件后,访问时不需要加前缀,直接访问即可:比如:
localhost://8080/helloword.html
2、spring boot中WebMvcConfigurationy源码解读
-
设置欢迎页面:
-
- WebMvcAutoConfiguration->welcomePageHandlerMapping->getIndexHtml()–>location + “index.html”,
-
- 即任意一个静态资源目录中的Index.html就是欢迎页面。
网站中:网页标签的Logo是固定名字:favicon.ico
自定义favicon.ico:阅读源码得知,只需要将favicon.ico文件放入任意静态资源目录既可。
- 即任意一个静态资源目录中的Index.html就是欢迎页面。
-
-
总结:
1.通过源码发现静态资源的目录
2.用静态资源:只需要将静态资源放入以上目录既可
3.其他特定的文件(欢迎页,ico),只需要根据约定(index.html,favicon.ico)放入该目录既可 -
如何自定义静态资源目录:
配置文件可以更改约定(核心就是在Properties文件中的prefix+属性来改):spring.resources.static-locations=classpath:/res/,classpath:/img/
以上将静态资源目录设置为了classpath:/res/,classpath:/img/,注意,自定义静态资源目录后一起默认的目录会失效。