起因是用maven打完war包后,我部署到tomcat上测试,发现图标加载不出来了。F12后就看到这个了!
以为是我war没打好,在IDEA中试一下,哇透~也是这个样子。
也是上网上查了好多帖子
一、Filter把资源拦截了!
可能是Filter 或这 Shiro 把静态资源拦截了,但是我的Filter里面对于静态资源是放行的,已经DEBUG验证过了。后来我复制了一个项目,把Filter去掉,还是没用,说明不是Filter的问题。
二、Maven开启filtering后,破坏了有二进制内容的文件
代表性的报错是 OTS parsing error: Failed to convert WOFF 2.0
我一想,就是打完包后出现的问题,于是,网上各种找相关的帖子,其中这三位大哥帖子写的非常好
https://blog.csdn.net/u013737646/article/details/50959625
以至于本来没有 OTS parsing error: Failed to convert WOFF 2.0 这个错误,后来配成这个错误了…………
这问题也是误导我很长时间。
三、资源损坏
这个问题,最不起眼了。我也忘了是看了哪个大哥的帖子了,只记得是在搜第二种问题的时候看过一眼,跟我一样也是被第二个问题折腾半天。
然后找了一个相似的测试项目,打war包,测试,发现这个测试项目没有问题,然后用这个测试项目的pom.xml替换了问题项目的pom.xml。再运行问题项目,访问,资源还是加载不出来。但是发现只是这三个字体资源加载不出来,其他的都正常。突然想到上文这个大哥的文章,也就是抱着试试看的态度,用这个测试项目的字体文件覆盖问题项目的文件,TMD,解决了~~
这几个资源就在项目创建时把它们添加进来,后来就一直没碰过它们,谁能想到它们能损坏啊!
总结
总结一下,其实问题很简单,也很不起眼,浪费了这么多时间,还是太盲目了!
遇到问题,应该先分析下问题,列出能想到,分析到引起问题的原因。
最后可以还原问题,能还原出来问题的话,找不同就好了。
一个个排查,建议从简单的原因开始排查!
就像福尔摩斯说的,排除一切不可能的,剩下的即使再令人难以置信,那也是真相!
网友评论