vue.js - Vue.js 环境变量不适用于 Heroku 上的 axios
问题描述
我已经将一个 Vue.js 应用程序部署到 heroku 一个也托管在 heroku 上的 api。
VueJS 应用程序使用 axios 连接到 api。我在heroku中设置了一个配置变量:
VUE_APP_ROOT_API = https://[my-express-api].herokuapp.com/api
这是我的基本 axios 调用:
import axios from 'axios'
const token = localStorage.getItem('token')
export default () => {
console.log(process.env.VUE_APP_ROOT_API)
return axios.create({
baseURL: process.env.VUE_APP_ROOT_API,
headers: {
'Content-Type': 'application/json',
token: token,
},
validateStatus: function () {
return true;
}
})
}
但是,控制台日志显示该变量未定义,并且 axios 使用 Vue 应用程序 url 作为 api 调用的基础 ( https://[my-vue-app].herokuapp.com/undefined/ ) 而不是指定的在配置变量中。
解决方案
解决了这个问题。事实证明,我的配置变量在构建时被编译到代码中,所以一旦我部署以触发重建,新的配置变量就起作用了。添加/更新配置变量将自动重新启动测功机,但这不会重建任何已编译的代码。
推荐阅读
- python - Tkinter:如何调整图像大小以填充其标签框并让该标签框填充其列?
- latex - 如何将文本直接放在限制函数下方?
- jsp - 如何在一个 JSP 页面上执行 mySQL 查询并在另一个页面上显示结果?
- mysql - 将 mysql 数据转储导入 Maria DB
- javascript - 如何在我的 React Todo 列表中实现 React Beautiful 拖放功能?
- python - 如何在python中加密套接字连接
- create-react-app - 为什么我只在 CRA 构建期间收到 ESLint 警告,而在 CLI 上运行 Eslint 时却没有?
- django - 我不明白如何使用 django 3rd 方库 djangorestframework-api-key
- image - 如何在 OpenShift 上列出所有 docker 图像信息
- apache-flink - Flink 读取 Savepoint 的 keystate 时,任务一直在运行,无法完成