静态资源作为项目中的一个组成部分,通常是不可缺少的,尤其对于Web项目更是如此。
1. 通过尝试判断静态资源访问位置和顺序
(1)在src/main/resources/目录下创建static文件夹
(2)在src/main/resources/目录下创建resources文件夹
(3)在src/main/resources/目录下创建public文件夹
(4)在src/main/resources/目录下创建META-INF/resources文件夹
通过在对应文件夹下面放置相同文件名称的文件,分别进行访问,可以验证,访问顺序优先级如下:
优先级顺序/META-INF/resources>resources>static>public
2. 添加自定义资源访问位置
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class CustomResourcePath extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/test/**").addResourceLocations("classpath:/teststatic/");
super.addResourceHandlers(registry);
}
}
注意这里的本地路径是:src/main下或者是在src/main/resource下创建teststatic目录,并在其下面放置静态资源,访问时采用/test/静态资源名称的方式进行访问。
3. springboot源码中定义的默认静态资源路径
ResourceProperties类中CLASSPATH_RESOURCE_LOCATIONS[] 这个数组中我们可以看到“classpath:/META-INF/resources/”, “classpath:/resources/”, “classpath:/static/”, “classpath:/public/”这4个属性,springboot可以直接访问1./META-INF/resources 2.resources 3.static 4.public这4个文件夹下的静态资源。