我使用node.js作为后端,vue.js作为前端Vue.js是项目托管在firebase上,而node.js后端托管在第三方服务器http://113.XXX.XX.XXX:XXXX/
上。我希望我的API调用获得此后端URL的代理,但似乎不起作用
vue.js项目的package.json文件
{
"homepage": "https://xxxxx-xxx.web.app/",
"name": "portal",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
}
vue.config.js文件
module.exports = {
publicPath: '/dist',
devServer: {
proxy: {
'^/api/':{
target: 'http://XXX.XXX.XX.XXX:XXX/',
secure: false,
changeOrigin: true
},
'^/u/api/':{
target: 'http://XXX.XXX.XX.XXX:XXX/',
secure: false,
changeOrigin: true
}
}
}
}
当我使用npm run serve
在本地运行项目时,API调用在本地环境中得到了正确的代理,但当我使用npm run build
创建其构建版本并将其托管在firebase上时,没有API调用得到代理
我认为问题是:我怀疑使用devServer设置的代理只适用于本地环境(localhost),而不适用于生产模式。
任何帮助都很感激...谢谢
1条答案
按热度按时间i1icjdpr1#
我的猜测是正确的
devServer
属性只适用于开发环境,我用
baseUrl = http://HOST_IP:PORT/
创建了axios示例,其中您应该用实际值替换host_ip和port