在使用thymeleaf加载css或js样式,当我们进入登录页的时候发现,所有的样式都是加载失败的。原因是在新版中有这样一个坑……:
当我们设置了addInterceptors-注册拦截器的时候,通常会这样设置
/** * 注册拦截器 */ @Override public void addInterceptors(InterceptorRegistry registry) { // 拦截除了登录页的全部请求,不拦截静态资源 registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**") .excludePathPatterns("/", "/login.html", "/user/login"); }
这样可以保证未登录的用户无法进入首页。那么问题就来了,我们要访问的静态资源的路径没有写入到这里。就会被默认拦截,所以才导致加载失败的问题。解决方法就比较简单了,只需要把静态资源的路径扔进来就可以了,比如(具体路径看你个人的,我这个是在static/css这样的路径下。你也可以直接/*.css来放行)
/** * 注册拦截器 */ @Override public void addInterceptors(InterceptorRegistry registry) { // 拦截除了登录页的全部请求,不拦截静态资源 registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**") .excludePathPatterns("/", "/login.html", "/user/login","/css/**","/fonts/**","/img/**","/js/**","/media/**"); }
如上,问题解决。