静态资源访问

基本介绍

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/"]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值