SpringBoot中如何访问静态资源

Springboot中如何访问静态资源

我们在使用 SpringMVC 框架时,静态资源会被拦截,所以我们需要添加额外配置过滤静态资源,让其不被拦截。

那么在Springboot中怎么配置呢。

一.传统SSM中的配置

我们常用的方式是在springmvc的配置文件中添加下面这段代码,让其过滤掉指定目录下的静态文件,不要拦截。

<mvc:resources mapping="/js/**" location="/js/"/>
<mvc:resources mapping="/css/**" location="/css/"/>

二.Spring Boot 中的配置

其实在springboot中也是要做这样的配置,只是springboot帮我们做了。它帮我们提前设置了5个目录作为静态资源目录,分别为:

  1. classpath:/META-INF/resources/
  2. classpath:/resources/
  3. classpath:/static/
  4. classpath:/public/
  5. /
前四个目录分别对应了 resources 目录下不同的目录,第 5 个 ‘/’ 是表示 webapp 目录中的静态资源也不被拦截。其实在 Spring Boot 项目中,默认是没有 webapp 这个目录的,但是我们可以自己添加,如果添加了,则表示webapp目录下的静态文件可以直接访问。当然第5种用的比较少。

那如果同一个静态文件在上述5个目录中都出现,那么优先级按照上面列出的顺序。

如果我们是从 https://start.spring.io 这个网站上创建的项目,或者使用 IntelliJ IDEA 中的 Spring Boot 初始化工具创建的项目,默认帮我们创建了static文件夹,那我们就将静态资源存入“ resources/static” 目录下就可以。

如果是自己手动创建的项目也可以按照上述的位置手动创建目录。

都不需要再做任何配置。

比如:

在static文件夹下创建img文件夹,存放图片timg.jpg,那么访问的时候就是<img th:src="@{/img/timg.jpg}" />

在这里插入图片描述

posted @ 2022-12-01 23:10  呆萌老师  阅读(625)  评论(0编辑  收藏  举报