SpringBoot2.X使用拦截器后静态资源访问404

SpringBoot2.X使用拦截器后静态资源访问404

今天在项目中添加了Intercptor后,发现我的前端页面的静态资源不能访问了。

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
    @Autowired
    private SessionInterceptor sessionInterceptor;
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor(sessionInterceptor).addPathPatterns("/**");
    }

经过百度后,终于解决了,SpringBoot2之后发现继承了WebMvcConfigurer类之后所有的静态资源都404了.

解决方法

重写 addResourceHandlers 方法

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
    @Autowired
    private SessionInterceptor sessionInterceptor;
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor(sessionInterceptor).addPathPatterns("/**");
    }

    /**
     * SpringBoot 2.x要重写该方法,不然css、js、image 等静态资源路径无法访问
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/META-INF/resources/")
                .addResourceLocations("classpath:/resources/")
                .addResourceLocations("classpath:/static/")
                .addResourceLocations("classpath:/public/");
    }
}

你可能感兴趣的:(编程中遇到的问题)