概述
基本介绍
1.只要静态资源放在类路径下:/static、/public、/resources、/META-INF/resources可以被直
接访问-对应文件WebProperties.java源码
private static final String[] CLASSPATH_RESOURCE_LOCATIONS={"classpath:/META-INF/resources/","classpath:/resources/","classpath:/static/","classpath:/public/"};
2.常见静态资源:JS、CSS、图片(.jpg .png .gif .bmp .svg)、字体文件(Fonts)等
3.访问方式:默认:项目根路径/+静态资源名 比如 http://localhost:8080/hi.jpg,
-通过设置WebMvcProperties.java可以设置添加工程路径
private String staticPathPattern ="/**"
注意事项
静态资源文件需要放在指定的4个目录中的一个,才能直接访问。不要想当然的放在java自带的resources下,就以为能访问了
还要检查程序运行后,target目录下是否生成了对应的静态文件,否则路径对了也访问不到。
在maven里面双击运行LifeCycle-clean,重置target目录,这样更可靠
细节
1.静态资源访问原理:静态映射是/**,也就是对所有请求拦截,请求进来,先看Controller能不能处理,不能处理的请求交给静态资源处理器,如果静态资源找不到则响应404页面
2. 当出现controller与静态资源重名时,会发生冲突,导致只能访问controller的页面,访问不到静态资源。可以通过给静态资源设置前缀的方式来避免冲突。
在resource下新建application.yml,名字不能乱取
最后依然要/**来扫描拦截
spring:
mvc:
static-path-pattern: /prefix/**
3. 可以自己配置资源文件夹。设置如下:
spring:# 同上,重复删除。这儿写出来是为了显式体现层级关系
web:
resources:
static-locations: [classpath:/custom/]
4. 因为源码是采用赋值的方式,而不是添加的方式修改设置,会导致原来可用的4个文件夹失效。如果要继续使用原来的资源文件夹,需要自己重新写上,可通过Ctrl+b的方式进入源码,复制添加原有类路径设置即可
spring:# 同上,重复删除。这儿写出来是为了显式体现层级关系
web:
resources:
static-locations: ["classpath:/custom/","classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"]
最后
以上就是风趣流沙为你收集整理的静态资源访问基本介绍注意事项细节的全部内容,希望文章能够帮你解决静态资源访问基本介绍注意事项细节所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复