springboot设置拦截器 访问静态资源图片不显示
时间: 2023-12-20 09:06:45 浏览: 155
SpringBoot解决整合thymeleaf静态资源以及没有整合时都无法访问的尝试
在Spring Boot中设置拦截器时,需要注意一些细节。
首先,如果你的静态资源图片不显示,可能是因为拦截器配置不当导致的。在配置拦截器时,可以使用`addPathPatterns()`方法设置需要拦截的路径,同时也需要使用`excludePathPatterns()`方法排除不需要拦截的路径。如果没有正确地配置排除路径,就可能会导致静态资源无法访问。
另外,还需要在配置文件中设置静态资源路径。在Spring Boot中,默认情况下静态资源路径为`/static`、`/public`、`/resources`和`/META-INF/resources`。如果你的静态资源存储在其他路径下,需要在配置文件中进行设置。
以下是一个示例拦截器配置,可以参考一下:
```java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new UserInterceptor())
.addPathPatterns("/user/**")
.excludePathPatterns("/user/login", "/user/register");
registry.addInterceptor(new AdminInterceptor())
.addPathPatterns("/admin/**")
.excludePathPatterns("/admin/login");
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**")
.addResourceLocations("classpath:/static/");
}
}
```
在上面的示例中,`UserInterceptor`和`AdminInterceptor`分别是自定义的拦截器类。`addPathPatterns()`方法设置需要拦截的路径,`excludePathPatterns()`方法排除不需要拦截的路径。`addResourceHandlers()`方法设置静态资源路径为`/static/**`,存储在`classpath:/static/`下。
阅读全文