springboot学习笔记(九)
springboot处理Web静态资源
静态资源:html,js,css等
springboot是一个jar包,因此静态资源不在存放到webapp(原先maven项目的)中。
静态资源的存放路径通过该WebMvcAutoConfiguration类中的addResourceHandlers()方法指定。
以前引入js等静态资源,是将这些资源下载下来,然后手工放入webapp目录下;
而springboot则是将这些静态资源直接以jar文件(maven)的形式引入项目。
访问引入的jar包时,从webjars开始写!
示例:引入一个jQuery,并访问
首先下载jar包:
<dependency>
<groupId>org.webjars.bower</groupId>
<artifactId>jquery</artifactId>
<version>3.3.1</version>
</dependency>
然后找到该jar包:
启动项目,访问该静态资源:
http://localhost:8080/webjars/jquery/3.3.1/dist/jquery.js
如何将自己写的静态资源放入到springboot中?
方法1:将自己写的静态资源打成jar包,然后引入springboot。
方法2:(推荐)
springboot将一些目录结构,设置成静态资源存放目录,我们自己写的静态资源直接放入这些目录即可!
①"classpath:/META-INF/resources/"
②"classpath:/resources/"
③"classpath:/static/"
④"classpath:/public/"
在以上目录存放资源文件后,访问时不需要加前缀,直接访问即可!
示例:
首先在静态资源存放目录中新建一个hello.html页面:
然后我们来访问他:
当我们加上前缀时:访问不到
直接访问时:成功
设置欢迎页
WebMvcAutoConfiguration类中的welcomePageHandlerMapping()->getWelcomePage()->location + "index.html"
即任意一个静态资源存放目录中的index.html就是欢迎页!
设置Logo
每一个网站中 网页标签都是有Logo的,例如:****的Logo为
网站中 网页标签的Logo是有固定的名字的:favicon.ico
自定义favicon.ico:
通过读源码得知:只需要将favicon.ico放入任意静态资源存放目录中即可!
如何自定义静态资源存放目录
properties文件中(prefix+属性名)
spring.resources.static-locations=classpath:/res/,classpath:/img/
自定义后,以前默认的静态资源存放路径会失效!
总结:
1.通过源码发现:静态资源的存放目录为
①"classpath:/META-INF/resources/"
②"classpath:/resources/"
③"classpath:/static/"
④"classpath:/public/"
2.用静态资源:只需要将静态资源放入以上目录即可
3.其他特定的文件,例如:欢迎页、logo,只需要将约定放入静态资源存放目录即可。