不可思议的BUG
莫看江面平如镜,要看水底万丈深——记一次由表象引起的不是BUG的BUG
起因
先上图
一位同学碰到了这样一个问题:明明配置的请求地址是ip,为什么变成域名了。
上图,第一行是实际请求报错的接口,第二行才是打印出的真正配置的接口地址,由于项目上会根据项目环境,会切换接口地址,方便开发、测试、生产。我的第一反应就是切换地址的逻辑有问题。仔细跟了他写的代码,确实在接口请求前,地址是开发地址,但请求之后变成了生产地址。
自己折腾了半天,尝试了各种方案:
- 把地址换成固定的字符串,如aaa,没问题;
- 将接口定义文件内容简化;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18// 简化前
export default {
dev: {
DEV_URL: ''
},
test: {
TEST_URL: ''
},
prod: {
PROD_URL: ''
}
}
// 简化后
export default {
dev: '',
test: '',
prod: ''
} - 我把生产地址注释掉,发现还调用的是生产地址