美文网首页
Springboot静态资源映射

Springboot静态资源映射

作者: 庙人 | 来源:发表于2018-12-21 11:41 被阅读0次

    Springboot默认支持的静态资源路径 ,即 /**,默认下面三个路径
    /src/main/resources/public
    /src/main/resources/resources
    /src/main/resources/static

    image.png
    我们在 三个默认路径下添加 image2.jpg image3.jpg image4.jpg三个图片,分别访问
    http://localhost:8080/image2.jpg
    http://localhost:8080/image3.jpg
    http://localhost:8080/image4.jpg
    Springboot会默认去三个目录下去寻找静态资源,均能访问到
    image.png
    如果我们新建一image文件夹并添加图片
    http://localhost:8080/image1.jpg就访问不到了,因此我们需要如下方式修改

    第一种方式

    拦截器重定向,继承WebMvcConfigurerAdapter类重写addResourceHandlers接口
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
    import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    
    @Configuration
    public class InterceptorRegister extends WebMvcConfigurerAdapter{
    
        private static final Logger logger = LoggerFactory.getLogger(InterceptorRegister.class);
    
        /*
         * 注册静态文件的自定义映射路径
         */
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            //定义到新文件夹
            registry.addResourceHandler("/image/**")
                    .addResourceLocations("classpath:/image/");
            //定义到硬盘
            registry.addResourceHandler("/picture/**")
                    .addResourceLocations("file:D:/picture/");
            super.addResourceHandlers(registry);
        }
    }
    
    添加新的image路径及图片image.jpg

    http://localhost:8080/image/image1.jpg

    image.png
    运行,访问picture,就会发现可以访问硬盘文件了

    http://localhost:8080/picture/image5.jpg

    image.png

    第二种方式

    配置文件配置参数
    #静态资源设定,添加此参数将覆盖默认的 src/resources/public  src/resources/static  src/resources/resources 三个路径,所以需要重新定义
    disk-path=D:/picture/
    spring.mvc.static-path-pattern=/**
    spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${disk-path}
    
    直接访问图片,就能访问到硬盘文件

    http://localhost:8080/image5.jpg

    image.png

    相关文章

      网友评论

          本文标题:Springboot静态资源映射

          本文链接:https://www.haomeiwen.com/subject/fdqmkqtx.html