运用SpringBoot开发一个Web项目,会涉及到一些静态资源例如:html css js等应该放在什么地方
因为spring Boot是一个jar包的形式,而不是一个war包的形式,所以静态资源就不是再存放到webapps中,那么应该存放在哪里呢?
可以看一下SpringBoot中的源码 spring-boot-autoconfigure-2.2.1.RELEASE.jar中的org.springframework.boot.autoconfigure.web.servlet中的WebMvcAutoConfiguration类中addResourceHandlers方法中有两个形式,一种是以webjars的形式:(这个方式不是很推荐所以就先不写,只是提一下),使用流程是:将自己写的js文件打成一个jar包的形式,然后按照springboot中约定的形式放入项目中
第二中形式:
在代码中可以看到这个方法:去获取到静态资源的配置信息,按住Ctrl键+鼠标左键,查看这个方法
this.resourceProperties.getStaticLocations()
查看这个方法返回的属性
public String[] getStaticLocations() {
return this.staticLocations;
}
在这里可以看到这些静态资源可以放在类路径下的这4个包中的任意一个包中,都会被识别
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
"classpath:/META-INF/resources/", "classpath:/resources/",
"classpath:/static/", "classpath:/public/" };
/**
* Locations of static resources. Defaults to classpath:[/META-INF/resources/,
* /resources/, /static/, /public/].
*/
private String[] staticLocations = CLASSPATH_RESOURCE_LOCATIONS;
在今天这个学习过程中学会了很多,例如我希望添加一个欢迎页面,那我应该如何去设置我的欢迎页。这些设置都可以在WebMvcAutoConfiguration类中去查看并添加或者修改