相对地址与绝对地址
之前用axios发请求,直接写接口路径,然后突然说要加前缀,虽然不知道为什么一定要加,但是说了也就加了,然后做新模块的时候是重新搭的架子,自己想好好捋捋项目结构,就没想直接copy之前的文件,自己按照理解写,就把这一点忘了,因为自己也很犹豫要不要加,然后各种事杂在一起,就把这个细节给忘了,然后因为只有上线部署是这样的,所以测试的时候也没有问题。但是上线就出问题了,那感觉,感觉全世界都认为你不靠谱,真是糟透了。
前后端的代码打包后部署在同一个环境上,假如是http://www.test.com,下面有个vs3目录,然后这个目录里面放的是前端的代码,还有个v3目录,放的是后端代码,现在登陆的时候要调一个校验接口:verify。情况是这样的:
后端代码路径:http:// www.test.com / v3 / account / login / verify
前端的登录页面的路径是:http:// www.test.com / vs3 / html / account / login.html
现在要在前端页面调一个名叫verify的接口,我的写法:url为:‘account/login/verify’。
然后发请求的时候就回去找当前这个前端页面的路径作为前缀,然后请求接口的路径就变成了:http:// www.test.com / vs3 / html / account / login / verify
因为是相对路径,所以是按前端页面所在的路径来找的。但是后端接口实际路径是:http:// www.test.com / v3 / account / login / verify
所以肯定就会报405。
正确写法是从当前页面的根目录开始找:" / v3 / account / login / verify "
这样就会去前端页面的根目录(http:// www.test.com)下找,然后请求接口的路径就是对的:http:// www.test.com / v3 / account / login / verify
总言之:路径总共打类分为:绝对路径与相对路径,相对路径分为根目录,当前文件所在目录,以及上一层目录
绝对路径:如这样全部固定写死 - 》 http:// www.test.com / vs3 / html / account / login / verify
相对路径:
1、/ 代表根目录,也就是目录层级的最上一层目录,如上就是http://www.test.com,不涉及下面的vs3和v3文件夹
2、./ 代表当前文件所在目录,例如login.html的所在目录就是account文件夹
3、../ 代表上一层目录,例如login.html的上一层目录就是html文件夹