SpringBoot关于Web的一些静态资源小知识点

文章目录

  • 关于静态资源
    • 举一个例子
  • 为什么我们的默认资源路径是这几个?
  • 那么有一个问题 我们可以自定义静态的放在哪吗?

关于静态资源

  • 只要静态资源放在类路径下: called /static (or /public or /resources or /META-INF/resources
    访问 : 当前项目根路径/ + 静态资源名
    原理: 静态映射/**。
  • 请求进来,先去找Controller看能不能处理。不能处理的所有请求又都交给静态资源处理器。静态资源也找不到则响应404页面

举一个例子

在static里面放一只可爱的锅巴
SpringBoot关于Web的一些静态资源小知识点_第1张图片

SpringBoot关于Web的一些静态资源小知识点_第2张图片
SpringBoot关于Web的一些静态资源小知识点_第3张图片
访问到了
我们写个控制器
SpringBoot关于Web的一些静态资源小知识点_第4张图片

访问不到了
SpringBoot关于Web的一些静态资源小知识点_第5张图片
我们可以看到我们控制器的优先级是要高于静态资源的

为什么我们的默认资源路径是这几个?

called /static (or /public or /resources or /META-INF/resources
我们来看一下源码
SpringBoot关于Web的一些静态资源小知识点_第6张图片
这个太长了 我截一部分 我们可以看到源码里面写的就是这几个

   private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{
   "classpath:/META-INF/resources/", 
   "classpath:/resources/", 
   "classpath:/static/",
    "classpath:/public/"};

那么有一个问题 我们可以自定义静态的放在哪吗?

当然可以
SpringBoot关于Web的一些静态资源小知识点_第7张图片
这个注解不就是读取核心配置文件的吗?
我们来在配置文件里面自定义一哈

SpringBoot关于Web的一些静态资源小知识点_第8张图片
我们来说一下下面这个东西

spring:
  mvc:
    static-path-pattern: /res/**

这是静态资源访问前缀
当前项目 + static-path-pattern + 静态资源名 = 静态资源文件夹下找
因为我们配置了要在/res/下面找所以我们在路径下要添加下面
在这里插入图片描述
这个东西
SpringBoot关于Web的一些静态资源小知识点_第9张图片
当然我们可以添加很多的文件夹
在这里插入图片描述
这样加入就行了

你可能感兴趣的:(这就是springboot,Java基础的查漏补缺,spring,java,后端)