• SpringBoot之静态资源处理


    SpringBoot之静态资源处理

    之前遇到过通过url访问图片SpringBoot通过url访问获取外部静态资源图片,但是当时也有局限性记录的不够全面。下面再总结一下,温故而知新,可以为师矣。

    1、Spring boot默认静态资源访问方式

    默认对/**的访问可以直接访问四个目录下的文件:

    classpath:/public/

    classpath:/resources/

    classpath:/static/

    classpath:/META-INF/resources/

    我们现在就在资源文件resources目录下建立如下四个目录:

    image

    注意条资源文件夹resources与类路径下的文件夹classpath:/resources是不同的,蓝色条下的resources代表的是该目录下的文件为资源文件,在打包的时候会将该目录下的文件全部打包的类路径下,这个名称是可以改的,在pom.xml指定资源目录即可:

    <resources>
         <resource>
             <directory>src/main/resources</directory>
         </resource>
    </resources>
    

    启动项目,URL(例:http://localhost:8080/1.html) 就可以访问到四个目录下的静态资源了。

    2、自定义静态资源目录

    自定义一个静态资源目录,我们定义一个images的目录来存放图片,所有/images/**的路径都会访问images目录下的资源:

    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    
    /**
     * @Description 自定义文件访问配置
     * @Author jie.zhao
     * @Date 2019/8/20 18:10
     */
    @Configuration
    public class FileMvcConfig implements WebMvcConfigurer {
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
             registry.addResourceHandler("/images/**")
                    .addResourceLocations("classpath:/images/");
        }
    }
    

    @Configuration标识一个配置类,这个在前面的文章中提到过多次WebMvcConfigurer是Spring提供的一个配置mvc的适配器,里面有很多配置的方法,addResourceHandlers就是专门处理静态资源的方法。

    其实除了上面的办法还有一种更简单的办法,就是直接在application.yml中配置即可:

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

    static-path-pattern:访问模式,默认为/**,多个可以逗号分隔

    static-locations:资源目录,多个目录逗号分隔,默认资源目录为classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/

    注意,这个配置会覆盖Spring boot默认的静态资源目录,例如如果按示例中配置,则无法再访问static、public、resources等目录下的资源了。

    -------------已经触及底线 感谢您的阅读-------------
  • 相关阅读:
    CentOS7 配置NAT模式
    xshell连接centos经常掉线
    Linux shell Bash的基本功能3 多命令与管道符
    Linux shell Bash的基本功能2 输入输出与重定向
    Unity学习疑问记录之向量基础
    Unity学习疑问记录之触摸点坐标
    Unity学习疑问记录之保卫伦敦塔学习体会
    Unity学习疑问记录之Quaternion
    Unity学习疑问记录之Awake和Update
    Unity学习疑问记录之脚本生命周期
  • 原文地址:https://www.cnblogs.com/cnsyear/p/12777875.html
Copyright © 2020-2023  润新知