已将拦截器注册到:
@Override
protected 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.静态/
这怎么可能?我该如何解决该问题?
答案 0 :(得分:1)
您两次调用excludePathPatterns。
这应该可以完成
@Override
protected void addInterceptors(final InterceptorRegistry registry) {
registry.addInterceptor(new ThymeleafLayoutInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/json/**", "/static/**");
}