在解决404,405中,遇到的问题

来源:2-6 问题答疑

qq_了不起的岁月_0

2019-05-15

我照老师的意思在配置文件中加入了那2行配置!
图片描述
但是由于我项目中引入了thymeleaf作为模板。项目启动后,我的所有静态资源全被拦截了。
后来就去重写资源路径:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations(“classpath:/static/”);
WebMvcConfigurer.super.addResourceHandlers(registry);
}
发现就好了,我想问下老师这是为什么呢?

写回答

1回答

龙虾三少

2019-05-15

你好:首先需要理解上面的静态资源的配置定义spring.mvc.throw-exception-if-no-handler-found
=true,由于springboot的mvc机制默认对于找不到handler,也就是找不到路径处理controller的方法时会使用404的错误交给servlet默认去处理,因此需要设置成true使其可以抛出异常,这样才能被我们定义的全局异常处理捕获到。其次 spring.resources.add-mappings表示我们不要开启默认的静态资源处理机制,而使用我们自己定义的静态资源处理的resourcesHandler。因此你需要手动添加静态资源处理的handler,例如像你的代码中一样,使用自定义的的/static/**的路径指向你jar包classpath下的路径已使得其可以找到静态资源

4
0

聚焦Java性能优化 打造亿级流量秒杀系统(赠秒杀项目)

理解高流量电商网站性能构建思路 用高逼格技术解决性能提升问题

2174 学习 · 1009 问题

查看课程