本地开发的时候,我们使用别人的接口,使用vue的代理用了重置标识符为空的代理,但是到了nginx服务器的时候,它不会重置为空,所以就造成了接口不对。
一般我们代理接口有两种写法:
(1)这个是我们在请求数据的时候,拼接地址的时候需要要加上info,因为这里已经把/info重置为空了所以,实际的地址还是https://m.wowdsgn.com/xxx,如果不加就会变成https://m.wowdsgn.com/info/xxx
'/info': {
target: 'https://m.wowdsgn.com',
changeOrigin: true,
pathRewrite: {
'^/info': ''
}
}
(2)这个是请求数据的时候自动拼接上/info,就和真实接口一样了.若自己手动添加的话就变成了https://m.wowdsgn.com/info/xxx就和实际接口不同了
'/info': {
target: 'https://m.wowdsgn.com',
changeOrigin: truer
}
这时使用第一种接口方法的话,当项目上线以后就会出现接口不对的情况。
解决方法:
把第二种代理写成第一种代理方式
改完以后再去 nginx.conf文件配置代理
然后打包上线项目,上线项目以后去nginx里面找到上线的usr/local/nginx/conf/nginx.conf文件,然后修改nginx.conf文件,代理配置参照vue的,一样的配置就可以了
然后去git去到/usr/local/nginx/conf/sbin目录下./nginx -s reload重启服务,就可以看见数据可以请求回来了
进过上面这个,我建议vue项目上线nginx服务器时使用第一种方法代理请求数据,不然接口出错了修改起来工作量太大 。