这个是一个很隐蔽的问题,springboot配置没做改变,突然就无法访问静态文件了,之前一直是好的。
由于是团队开发,肯定是有人提交了一段代码导致(配置没变,这部分可以先排除)。
仔细排查后发现最近新加了这样一段代码:
@RequestMapping(name = "/") @ResponseBody public String slbCheck() { return "success"; }
这是一段配合阿里云SLB检测的接口,乍一看貌似没啥问题,但是这个是有问题的。
@RequestMapping( name = “/”) 这里不能用name,要用value或者path
name的作用这里不做介绍,具体可以百度了解。总之跟value属性肯定不一样。
总结:
从这次错误可以看出对一个框架进行深入了解的必要性,尤其是spring框架,工作中用到非常多,必须要对其非常了解,不然的话出现问题排查起来花费许多时间,影响效率。
其次,一些编码规范可以避免这种低级的失误,比如@RequestMapping(value = “/”),可以用@RequestMapping(“/”)代替。如果要用属性指定路径,统一使用path属性,容易理解。
最后,做好代码review,尤其是成长中的团队(一个高手带几个经验不足的),代码质量一定要把好关。