8 — 静态资源处理方式

7中说了thymeleaf,哪还有一个目录是static

8 — 静态资源处理方式

  • 那么就来研究一下静态资源
    • 静态资源,springboot底层是怎么去装配的,都在WebMvcAutoConfiguration有答案,去看一下

      • 8 — 静态资源处理方式
    • 通过上述的源码发现两个东西:webjarsgetStaticLocations()

1)、webjars的方式处理静态资源

  • webjars的官网如下:

  • 进去之后:里面就是各种各样的jar包

  • 这里使用jQuery做演示

    • 导入jQuery的依赖

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.4.1</version>
</dependency>

8 — 静态资源处理方式

  • 导入之后:发现多了这么一个jar包,现在我们去直接访问一下
    8 — 静态资源处理方式

  • 是可以直接访问的,为什么?
    8 — 静态资源处理方式

2)、getStaticPathPattern(),点进去看一下

发现是如下这么一个方法


        public String[] getStaticLocations() {
            return this.staticLocations;
        }

那就继续点击staticLocations看一下
8 — 静态资源处理方式

8 — 静态资源处理方式


"classpath:/META-INF/resources/",   <!--这个就不多说明,前面已经见过这种目录了 -->

"classpath:/resources/", 

"classpath:/static/", 

"classpath:/public/"

发现有四种方式可以放静态资源,那就来测试一下

3)、resources/,static/,public/的优先级

8 — 静态资源处理方式

  • 测试
    8 — 静态资源处理方式

发现resources下的优先级最高

  • 删掉resources中的资源文件,继续测试
    8 — 静态资源处理方式

8 — 静态资源处理方式

发现static目录其次

因此:结果就出来了

  • resources目录下的优先级最高
  • 其次是static
  • 最后是public

资源放置建议:

  • public放置公有的资源,如:img、js、css....
  • static放置静态访问的页面,如:登录、注册....
  • resources放置动态资源,如:用户管理.....
上一篇:rabbitMQ的几种工作模式及代码demo(二)-----订阅模式之广播fanout交换机


下一篇:SpringBoot静态资源源码解析