Express Heroku加入';未定义';以URL环境变量为基础
正在尝试将vuejs express应用程序部署到heroku。应用程序显示,但不能访问API,因为Helku似乎在BaseTyURL的中间添加了“未定义”。一切都按预期在本地运行 这是我的heroku配置变量:Express Heroku加入';未定义';以URL环境变量为基础,express,heroku,environment-variables,axios,base-url,Express,Heroku,Environment Variables,Axios,Base Url,正在尝试将vuejs express应用程序部署到heroku。应用程序显示,但不能访问API,因为Helku似乎在BaseTyURL的中间添加了“未定义”。一切都按预期在本地运行 这是我的heroku配置变量: BASE\u URL:https://goore-todos.herokuapp.com/ 以下是Vuejs组件api请求: fetchTodo () { let uri = process.env.BASE_URL + '/api/all'; axios.get(uri).t
BASE\u URL:https://goore-todos.herokuapp.com/
以下是Vuejs组件api请求:
fetchTodo () {
let uri = process.env.BASE_URL + '/api/all';
axios.get(uri).then((response) => {
this.todos = response.data;
});
},
如前所述,这在本地有效
控制台显示以下错误:
VM71:1 GET 404(未找到)
视图是空的
通过邮递员发送的请求按预期工作。在本例中,process.env.BASE\u URL似乎未定义。由于未定义,您尝试访问的url被认为是相对的。这意味着它使用您当前的域并附加路径 如果前端和后端运行在同一个域上,则没有理由尝试将API url作为变量传递,因为您可以只使用相对url
如果您想通过环境变量访问URL,使用前端应用程序会有点麻烦。Vue应用程序在用户的浏览器上运行,而不是在您的服务器上运行,因此您无法直接访问它。使用相对URL有效。谢谢我仍然想知道,当我在heroku中设置process.env.BASE_URL,并且在本地环境中读取时,它是如何未定义的。env@user2799827通常,在构建应用程序时,需要指定前端应用程序的环境变量。当你的应用程序在别人的浏览器上时,它当然不能从你的浏览器中读取环境变量server@user27有些JavaScript应用程序在编译时仅使用环境变量,您可能需要重新触发应用程序的部署