有一个拦截器注册到:@Overrideprotected void addInterceptors(final InterceptorRegistry registry) { registry.addInterceptor(new ThymeleafLayoutInterceptor()).addPathPatterns("/**").excludePathPatterns("/json/**").excludePathPatterns("/static/**");}据我了解,应为每个请求调用拦截器,但不会为路径中带有/static/或/json/的请求调用拦截器。但是,拦截器似乎是从每个资源中调用的,也从路径中带有静态资源的资源中调用。我的拦截器的 PostHandle 方法中的打印输出final ResourceHttpRequestHandler h = (ResourceHttpRequestHandler) handler;System.out.println(h.getLocations());结果是[class path resource [static/]]我试过这样的模式1. /static/**2. /static/*,3. /static/4. static/这怎么可能,我该如何纠正这个问题?
1 回答
梦里花落0921
TA贡献1772条经验 获得超6个赞
您正在调用 excludePathPatterns 两次。
这应该做的工作
@Override
protected void addInterceptors(final InterceptorRegistry registry) {
registry.addInterceptor(new ThymeleafLayoutInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/json/**", "/static/**");
}
添加回答
举报
0/150
提交
取消