静态资源访问
-
静态资源目录
类路径下:called
/static
(or/public
or/resources
or/META-INF/resources
)按照要求建立文件夹
找几个图片放到静态文件夹中,用来测试使用
启动服务器之后,在浏览器中输入地址+静态资源文件名就可以访问
测试证明了,这些目录确实时SpringBoot提供的静态资源目录,没有骗人确实可以访问的到,只要静态资源放到当前目录类路径下指定的静态资源目录下,就可以访问
访问:当前项目根路径/ + 静态资源名
再来看官网的一句话,这句话的意思是,默认的访问地址,如果你想要修改,也可以,按照以下给出的修改参考
By default, resources are mapped on
/**
, but you can tune that with thespring.mvc.static-path-pattern
property. For instance, relocating all resources to/resources/**
can be achieved as follows:Properties
Yaml
spring.mvc.static-path-pattern=/resources/**
首先做个测试,测试如果动态资源和静态资源同名的情况下,访问到的应该是什么?在Controller包下新建HelloController类,进行访问sea.png时测试
@RestController public class HelloController { @RequestMapping("/sea.png") public String hello(){ return "find...find...find..."; } }
先看一下结果在说话
原理:静态映射/**
所以这个请求流程就清晰了,请求进来之后,先去到Controller中看能不能处理,如果不能处理就把所有的请求转至到静态资源处理器,如果静态资源处理器也找不到,就返回404
-
静态资源访问前缀
默认是没有前缀的
想要给它一个前缀,SpringBoot官方也给出了参考,就在上面那个,需要配置
spring.mvc.static-path-pattern=/resources/**
spring: mvc: static-path-pattern: /res/**
static-path-pattern: /res/** 意思就是前缀res/后的请求都是静态请求,再次访问的时候地址就应该是res/+访问资源名字
localhost:8080/res/sea.png
-
改变默认的静态资源路径
SpringBoot提供了默认的静态资源路径,如果你不想使用默认提供的,也可以自己配置
spring: resources: static-localions: classpath:/staticdic/
这个配置就是将静态资源的存放路径修改为了staticdic文件夹,就需要把所有的静态资源放置在此文件夹下