SpringBoot中如何访问静态资源
Springboot中如何访问静态资源
我们在使用 SpringMVC 框架时,静态资源会被拦截,所以我们需要添加额外配置过滤静态资源,让其不被拦截。
那么在Springboot中怎么配置呢。
我们常用的方式是在springmvc的配置文件中添加下面这段代码,让其过滤掉指定目录下的静态文件,不要拦截。
<mvc:resources mapping="/js/**" location="/js/"/>
<mvc:resources mapping="/css/**" location="/css/"/>
其实在springboot中也是要做这样的配置,只是springboot帮我们做了。它帮我们提前设置了5个目录作为静态资源目录,分别为:
classpath:/META-INF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/
/
前四个目录分别对应了 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}" />