转载

这个Spring Boot项目怎么无法访问静态资源

问题源于一个客户这边自己封装的框架,一个Spring Boot的项目在加一些自定义的配置的框架。一开始拿到框架我是崩溃的,因为这个框架还飘着错呢。而且文档一点不详细。

果然,花了几分钟把项目启动之后,发现页面的静态资源加载不进来。而且报错为

401 认证失败
复制代码

看了看代码,很明显这是框架自己定义的错误。

但是这个认证失败是什么鬼,我已经按照文档的说明把那个页面的权限打开了,而且关闭权限的时候错误是这个

410 禁止非法访问
复制代码

这就有意思了,我完全找不到这个错误信息(后来发现是单独写死在某个类里面的,那为啥要其他的错误码都定义在一起呀)

没办法只好debug看看为啥报这个错误信息。

然后发现是错误原因是

No handler mapping for xxx
复制代码

一脸懵,从未遇到过请求静态资源报这个错。我把这个框架的自定义的部分dao了个遍,完全没有地方会导致这个错误的发生。

既然没有针对这个的代码配置,那么肯定是 application.yml 有什么配置。 果然,我看到了

spring
    resources:
        add-mappings: false
复制代码

经验告诉我就是他了。把它改为true。问题解决了

所以原因就是因为这个设置成false,导致WebMvcConfigurer的addResourceHandlers方法直接返回了,所以没有Handler处理静态资源。

原文  https://juejin.im/post/5df35866518825125e1bafe3
正文到此结束
Loading...