zoukankan      html  css  js  c++  java
  • springboot拦截器拦了静态资源css,js,png,jpeg,svg等等静态资源

    1、在SpringBoot中自己写的拦截器,居然把静态资源也拦截了,导致了页面加载失败。

     1 package com.bie.config;
     2 
     3 import com.bie.component.MyLocalResolver;
     4 import com.bie.interceptor.LoginInterceptor;
     5 import org.springframework.context.annotation.Bean;
     6 import org.springframework.context.annotation.Configuration;
     7 import org.springframework.web.servlet.LocaleResolver;
     8 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
     9 import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
    10 import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
    11 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    12 
    13 /**
    14  *
    15  */
    16 @Configuration
    17 public class SpringMvcWebConfigSupport implements WebMvcConfigurer {
    18 
    19     /**
    20      * 默认访问的是首页
    21      *
    22      * @param registry
    23      */
    24     @Override
    25     public void addViewControllers(ViewControllerRegistry registry) {
    26         registry.addViewController("/").setViewName("login");
    27         registry.addViewController("/login.html").setViewName("login");
    28         registry.addViewController("/main.html").setViewName("dashboard");
    29     }
    30 
    31     /**
    32      * 将static下面的js,css文件加载出来
    33      *
    34      * @param registry
    35      */
    36     @Override
    37     public void addResourceHandlers(ResourceHandlerRegistry registry) {
    38         //registry.addResourceHandler("/static/").addResourceLocations("classpath:/static/");
    39         registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
    40     }
    41 
    42     /**
    43      * 将国际化添加到容器中
    44      *
    45      * @return
    46      */
    47     @Bean
    48     public LocaleResolver localeResolver() {
    49         return new MyLocalResolver();
    50     }
    51 
    52     /**
    53      * 注册拦截器
    54      *
    55      * @param registry
    56      */
    57     @Override
    58     public void addInterceptors(InterceptorRegistry registry) {
    59         registry.addInterceptor(new LoginInterceptor())
    60                 .addPathPatterns("/**")
    61                 .excludePathPatterns("/", "/login.html", "/user/login",
    62                         "/**/*.css", "/**/*.js", "/**/*.png", "/**/*.jpg",
    63                         "/**/*.jpeg", "/**/*.gif", "/**/fonts/*", "/**/*.svg");
    64     }
    65 }

    解决方法,在你注册拦截器的方法中,将这些静态资源排除掉,这样就可以顺利加载出来了,静态资源。实现自己的目标。

     1 /**
     2      * 注册拦截器
     3      *
     4      * @param registry
     5      */
     6     @Override
     7     public void addInterceptors(InterceptorRegistry registry) {
     8         registry.addInterceptor(new LoginInterceptor())
     9                 .addPathPatterns("/**")
    10                 .excludePathPatterns("/", "/login.html", "/user/login",
    11                         "/**/*.css", "/**/*.js", "/**/*.png", "/**/*.jpg",
    12                         "/**/*.jpeg", "/**/*.gif", "/**/fonts/*", "/**/*.svg");
    13     }

    上面是顺利加载的页面,下面是没有加载静态资源的页面;

  • 相关阅读:
    背景图片自适应大小(平铺)
    墨卡托投影示意图
    C# 两个类的实例之间相同属性的值的复制
    C# 并行编程 Task
    C# 并行编程 PLINQ
    C# 并行编程 Parallel
    仰望星空
    Ubuntu的人道精神
    神经网络简介
    并行计算简介
  • 原文地址:https://www.cnblogs.com/biehongli/p/11069078.html
Copyright © 2011-2022 走看看