SpringBoot - 实现静态资源的访问(附:修改过滤规则静态资源位置)

Posted OkidoGreen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot - 实现静态资源的访问(附:修改过滤规则静态资源位置)相关的知识,希望对你有一定的参考价值。

一、默认静态资源访问策略

(1)当我们使用 IntelliJ IDEA 创建 Spring Boot 项目,会默认创建 classpath:/static/ 目录,我们直接把静态资源放在这个目录下即可。

(2)我们直接在浏览器中输入“http://localhost:8080/java.png”即可看到我们添加的这张图片。

二、自定义策略

如果默认的静态资源过滤策略不能满足开发需求,也可以自定义静态资源过滤策略,自定义的方式有如下两种。

1,在配置文件中定义

(1)我们在 application.properties 中直接定义过滤规则和静态资源位置: 

  • 过滤规则改为 /static
  • 静态资源位置仍然是 classpath:/static/ 没有变化
spring.mvc.static-path-pattern=/static/**
spring.resources.static-locations=classpath:/static/


(2)重启项目,我们这次可以在浏览器中输入“http://localhost:8080/static/java.png”来访问添加的静态图片。

2,通过 Java 编码定义

原理查看:(901条消息) WebMvcConfigurer 与 WebMvcConfigurationSupport避坑指南_OkidoGreen的博客-CSDN博客https://blog.csdn.net/z69183787/article/details/108587048

或源码:

spring-framework/DelegatingWebMvcConfiguration.java at b595dc1dfad9db534ca7b9e8f46bb9926b88ab5a · spring-projects/spring-framework · GitHubhttps://github.com/spring-projects/spring-framework/blob/b595dc1dfad9db534ca7b9e8f46bb9926b88ab5a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/DelegatingWebMvcConfiguration.java spring-framework/WebMvcConfigurationSupport.java at b595dc1dfad9db534ca7b9e8f46bb9926b88ab5a · spring-projects/spring-framework · GitHubhttps://github.com/spring-projects/spring-framework/blob/b595dc1dfad9db534ca7b9e8f46bb9926b88ab5a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupport.java

(1)这种方式我们只要创建一个类继承 WebMvcConfigurer 接口即可,然后实现该接口的 addResourceHandlers 方法。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

package com.example.demo;

import org.springframework.stereotype.Component;

import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**

 * 静态资源映射

 */

@Component

public class  MyWebMvcConfig implements WebMvcConfigurer

    @Override

    public void addResourceHandlers(ResourceHandlerRegistry registry)

        registry.addResourceHandler("/static/**")

                .addResourceLocations("classpath:/static/");

    


(2)重启项目,效果同上面是一样的。我们同样可以在浏览器中输入“http://localhost:8080/static/java.png”来访问添加的静态图片。
原文出自:www.hangge.com  转载请保留原文链接:SpringBoot - 实现静态资源的访问(附:修改过滤规则、静态资源位置)

以上是关于SpringBoot - 实现静态资源的访问(附:修改过滤规则静态资源位置)的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot静态资源访问+拦截器+Thymeleaf模板引擎实现简单登陆

SpringBoot找不到静态资源文件

springboot-静态资源访问

springboot-静态资源访问

springBoot怎样访问静态资源?+静态资源简介

springboot静态资源访问