欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

SpringBoot之静态资源访问配置

时间:2023-07-02
一、默认静态资源映射规则

Spring Boot 默认将 / 的所有访问映射到以下目录:

classpath:/staticclasspath:/publicclasspath:/resourcesclasspath:/meta-INF/resources

接下来,在 main/resources下新建 static、public 和 resources 三个文件夹,分别放入 a.png、b.png 和 c.png三张图片,启动项目,分别访问:

http://localhost:8080/a.pnghttp://localhost:8080/b.pnghttp://localhost:8080/c.png

发现都能正常访问相应的图片资源。那么说明,Spring Boot 默认会挨个从 public、resources 和 static 里面找是否存在相应的资源,如果有则直接返回。

二、配置访问自定义的资源访问路径

在 main/resources 目录下创建 mystatic 目录,目录下增加一个 1.png 图片资源文件,此时通过访问 http:localhost:8080/mystatic/1.png 返回的是 404 NOT FOUND,有两种配置方式可以实现正常访问。

方式一:通过配置 application.yml 配置文件:

spring: mvc: static-path-pattern: /mystatic/** web: resources: static-locations: classpath:/mystatic/

方式二:通过继承 WebMvcConfigurer 并重写映射规则:

package com.study.config;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configurationpublic class MyWebAppConfigurer implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { // 将/mystatic/**访问映射到classpath:/mystatic/ registry.addResourceHandler("/mystatic/**").addResourceLocations("classpath:/mystatic/"); }}

以上两种配置方式等价,两种方法选择其一配置即可,如果同时配置,同时生效,可以大胆测试。

温馨提示:如果出现配置后无法正常访问时,将项目目录中的 target 目录删除后,重新编译启动,重试即可。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。