SpringBoot靜态資源請求失敗
靜态資源存放位置為: /resources/static/**
方法一:
1.在pom中添加jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
2.application.yml檔案中添加配置
spring:
mvc:
static-path-pattern: /static/**
如需添加配置類, 不能繼承WebMvcConfigurationSupport, 應實作WebMvcConfigurer類或自定義配置類, 否則由于WebMvcConfigurationSupport中的addResourceHandlers預設方法會導緻靜态資源不可通路
方法二:
在配置類中添加urlMapper
@Configuration
public class MyWebConfig extends WebMvcConfigurationSupport {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
super.addResourceHandlers(registry);
}
}
這兩種方法都不能再添加配置類, 指定url請求字尾了, 如果需要指定請求字尾, 可增加Controller基類, 其他Controller繼承該類
@RequestMapping("**.html") // 隻處理.html字尾的請求
public class BaseController {
}
@Controller
public class IndexController extends BaseController {
}
添加攔截器
1.配置類中注冊攔截器
@Configuration
public class MyWebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new GlobalInterceptor()).addPathPatterns("/**/*.html");
}
}
2.添加攔截器類
public class GlobalInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(
HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
System.out.println("---------------request start--------------");
return true;
}
}