前言
大家好,我是Jade。好久没写文章了,最近正好解决了一个bug,以此来记录一下,共勉~
事情是这样的,由于最近也是换了新工作,所以接手了一个新的项目。
入职第一天,老板找我谈话
老板:Jade,我们的客户端系统切换菜单有时候会闪动,你有空和你们前端的同事一起探讨一下
解决一下这个问题
我:......当然no problem ~
看到这里,各位大佬们可以先想一下可能出现bug的原因
抛出问题
在我回到自己的工位上后,开始启动项目,尝试复现bug,很可惜 无果。随后我询问了我同事,他和我说这个是个存在很久的bug了,而且因为不是百分百复现,自己也尝试改过,但是还是不行。看来从他这里是得不到有用的信息了,随后我找到了我们测试组长,github官网登陆入口向他了解更多有关b源码网站ug的一些信息。他说道:github是什么这个bug偶尔会出现一次,但是大部分时间是正常的,从书签地址栏和官网跳转或重新打开都会有这个问题出现,而且是一直来回闪动,必须要手动刷新页面才行。随后又进行几次的询问,我总结以下几点……
1. 很难复现,有可能一天,有可能好几天,时有时无
2. 出现的情况是路由反复横跳,需要手动刷新
3. 从公司官网或书签或新建窗口打开都有这种情况
4. 前端同事告知项目不是部署在根目录下的,所以配置了base路由前缀
5. 最开始出现问题是路由前缀会出现多次,改过一版后出现2的问题
6. 项目配置了nginx
查找问题 1
首先得知上面这么多信息,我第一反应nginx重启就是要重现bgithub开放私库ug,但是点了半天也重现不了。随后f12查看了一下console也没有任何报错信息。
查找问题 2
通过查看source和配置文github是什么件并没有解决什么问题,我一度怀疑是不是配置文github中文社区件写错了,在umi和antd pro的官网以及对应的github仓库上,查找是否有相同的issue,很可惜也是无果,因为很难复现。此时已经过去了一测试你的自卑程度个星期
查找问题 3
后续查找问题的过程中,听同事nginx是干嘛用的说配置了nginx而且产物也确实在/测试抑郁症的20道题kehudgithub开放私库uan目录下。难不成是nginx配置文件的问题?匹配路由的规则写错了,导致重定向和浏览器冲突吗?带着这个疑问我思考了许久,发现了一个遗漏的很重要点。那就是这个bu测试工程师g一段时间才会出现一次
排除问题
其实我一直都忽略了上nginx配置面那点,属实马大哈了
通过这点其实很容易想到和登录过期时间有关
,下面只要确定是前端过期的代码问题还是nginx的问题。随后我问了后端同事登录过期时间是1nginx是什么意思2h,过期后会刷新测试抑郁症token。ok,源码编程器把过期时间改为git教程两分钟,坐等复现。
路由前缀重复
,我同事为了路由前缀不重复修改代码如下(但是会导致页面闪动,/a/b和/github是什么a/a/b来回跳)
解决问题
问题已经定位到了,就是登录过期刷新token后的处理逻辑有问题,所以只要检查这部分代码逻辑就可以了。通过代码知道是在登陆过期后做了一次重定向,大致如下。
window源码精灵永久兑换码.locatnginx启动命令ionNginx.pathname源码编辑器下载
获取路由,如:当前路由是/a/b,则pathname就是/a/b又由于我们设置了base是/a,则跳转后会变成/a/a源码交易平台/b 就会github汤姆出现路由前缀重复且页面404
只要改写一下方法就ok了
至此这个磨人的bug就nginx是干嘛用的解决了✔
总结
这篇文章用来记录一下解决bug的新路历程,确实有太多阻碍了,比如因为刚接手项目,对业务逻辑和代码不熟、不能复现(对客户的影响还是挺大的,毕竟要手动刷新)、bug相关描述太少且模糊不清。所以对我来说定位问题还是有点难度的。
不难免有的大佬,第一眼就知道是哪里问GitHub题(respect),本文只是记录一下。你也可以说我菜