在开发web应用的时候,需要引用大量的js、css、图片等静态资源。静态资源访问配置有一下三种方式
一、默认配置
目录位置需要在classpath下,目录名称符合如下规则:
- classpath:/static
- classpath:/public
- classpath:/resources
- classpath:/META-INF/resources
eg:在 src/main/resources目录下新建static、public、resources、META-INF/resources四个目录,分别放入1.jpg 2.jpg 3.jpg 4.jpg四张图片,如下图
然后用浏览器访问以下四个链接,均可正常访问。
localhost:8080/1.jpg
localhost:8080/2.jpg
localhost:8080/3.jpg
localhost:8080/4.jpg
Spring Boot默认从static、public、resources、META-INF/resources四个目录中查找是否存在对应的资源
二、在application.properties中配置
1、在src/main/resources目录下创建mytest文件夹,放入图片6.jpg
2、在 src/main/resources目录下新建application.properties文件。内容如下:
#静态文件请求匹配方式
spring.mvc.static-path-pattern=/wuyuning/**
#修改默认的静态寻址资源目录 多个使用逗号分割
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,\
classpath:/static/,cladsspath:/public/,classpath:/mytest/
注意:
spring.mvc.static-path-pattern=/wuyuning/**
表示所有的访问都经过静态资源路径;
spring.resources.static-locations
在这里配置静态资源路径,这里的配置是覆盖默认配置,所以需要将默认的也加上。否则static
、public
等这些路径将不能被当作静态资源路径
此时可以用浏览器访问以下链接:
localhost:8080/wuyuning/1.jpg
localhost:8080/wuyuning/2.jpg
localhost:8080/wuyuning/3.jpg
localhost:8080/wuyuning/4.jpg
localhost:8080/wuyuning/6.jpg
三、自定义静态资源地址的类
1、在rc/main/resources目录下创建mystatic文件夹,放入图片5.jpg
2、添加MyWebMvcConfigurerAdaper类,内容如下:
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class MyWebMvcConfigurerAdaper extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
registry.addResourceHandler("/mystatic/**").addResourceLocations("classpath:/mystatic/");
}
}
访问地址:
localhost:8080/mystatic/5.jpg