Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Express Heroku加入';未定义';以URL环境变量为基础_Express_Heroku_Environment Variables_Axios_Base Url - Fatal编程技术网

Express Heroku加入';未定义';以URL环境变量为基础

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

正在尝试将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).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应用程序在编译时仅使用环境变量,您可能需要重新触发应用程序的部署