背景

在web开发中如果把图片直接添加到项目中,因为项目没有刷新,所以添加的图片往往无法及时显示。
于是想到了把图片添加到项目之外的文件夹中,这样可以做到及时显示。

代码

在配置中,添加images/的拦截,分发到对应的本地文件夹(记得带上前面的file)。不懂的话可以直接复制。

package com.guangyu.config;

import com.guangyu.interceptor.MyInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.*;


@Configuration
public class MyWebConfig extends WebMvcConfigurerAdapter {

    //配置一个静态文件的路径 否则css和js无法使用,虽然默认的静态资源是放在static下,但是没有配置里面的文件夹
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/static/");
        registry.addResourceHandler("/images/**").
                addResourceLocations("file:/D:/images/");
        super.addResourceHandlers(registry);
    }


    /*添加拦截器*/
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(myInterceptor()).addPathPatterns("/good/**")
        .excludePathPatterns("/js/**")
        .excludePathPatterns("/assets/**")
        .excludePathPatterns("/css/**")
        .excludePathPatterns("/index/**")
        .excludePathPatterns("/font/**")
        .excludePathPatterns("/images/**")
        .excludePathPatterns("/json/**")
        .excludePathPatterns("/skin/**");
    }

    @Bean
    public MyInterceptor myInterceptor(){
        return new MyInterceptor();
    }
}
<img width='30px' height='30px' src='/images/kuzi/"+button.id+".png'/>