Heroku 将'undefined'添加到BASE_URL环境变量



试图部署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调用是唯一修复了它的内容。

最新更新