SpringBoot访问静态资源
一.默认的访问静态资源的几种方式:
在src/main/resources/目录下创建static 文件夹
在src/main/resources/目录下创建resources文件夹
在src/main/resources/目录下创建public文件夹
在src/main/resources/目录下创建META-INF/resources文件夹
在这几个文件夹下存放静态资源,访问时:localhost:8080/test.jpg
注意:访问时不用加static,resources等这些文件夹路径
若同时建立这四个文件夹,并且里面放相同名称的文件,那么在springboot的访问顺序是:
/META-INF/resources>resources>static>public
二、自定义文件夹访问静态资源
springboot中访问静态资源时不一定必须要以springboot创建指定名称文件夹来访问,可以自定义
创建配置类:
@Configuration
public class MyWebAppConfigurer extends WebMvcConfigureAdapter{
@Override
public void addResourceHandler(ResourceHandlerRegistry registry){
registry.addResourceHandler(“/test/**”).addResourceLocations(“classpath:/testpicture/”);
super.addResourceHandlers(registry)
}
}
注:创建配置类并继承WebMvcConfigurerAdapter类并且重写addResourceHandlers方法,参数引用ResourceHandlerRegistry类这个对象调用addResoucesHandler以及addResourceLocations方法,从方法名可以看出:前者是提供资源访问路径,而后者是本地项目路径。
访问:localhost:8080/test/test.jpg
按此原理分析:前面的四个文件夹之所以能访问,应该是springboot源码中定义了路径
三、SpringBoot访问webapp目录
SpringBoot 创建后没有webapp目录,可以在项目中创建:
配置类:
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("/");
}
}