试图部署vuejs,将应用程序express应用到heroku。该应用显示,但无法访问API,因为Heroku似乎在base_url的中间添加了"未定义"。一切都按预期在本地工作。
这是我的heroku config var: BASE_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获取https://goore-todos.herokuapp.com/undefined/api/all 404(找不到(
,视图为空。
请求https://goore-todos.herokuapp.com/api/通过预期的邮递员工作。
在这种情况下,它看起来像process.env.base_url不确定。由于不确定,您要访问的URL被认为是相对的。这意味着它使用您的当前域并附加通往其路径。
如果您的前端和后端在同一域上运行,则没有理由尝试将API URL作为变量传递,因为您只能使用相对URL。
如果要通过环境变量访问URL,则使用前端应用程序会更棘手。VUE应用程序在用户的浏览器上运行,而不是在服务器上运行,因此您无法直接访问它。
我遇到了这个问题,不得不用Heroku URL浏览所有我的URL并硬编码。我尝试重置Heroku中的config变量,该变量在末尾有一个额外的斜线,但最终硬编码每个API调用是唯一修复了它的内容。