如何在Vue中访问在运行时而不是在构建期间传递给容器的环境变量?
堆栈如下:
有关stackoverflow和其他地方的建议解决方案,使用.env文件传递变量(和使用模式),但这是在构建时,并被烘焙到docker镜像中.
我想在运行时将变量传递给Vue,如下所示:
我在helloworld.vue中尝试了以下内容:
<template>
<div>{{displayURL}}
<p>Hello World</p>
</div>
</template>
<script>
export default {
data(){
return{
displayURL:""
}
},
mounted(){
console.log("check 1")
this.displayURL=process.env.VUE_APP_ENV_MyURL
console.log(process.env.VUE_APP_ENV_MyURL)
console.log("check 3")
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
我在控制台日志中找回"undefined",并且在helloworld页面上没有显示任何内容.
我也尝试将值传递到vue.config文件并从那里读取它.console.log中的结果相同"未定义"
<template>
<div>{{displayURL}}
<p>Hello World</p>
</div>
</template>
<script>
const vueconfig = require('../../vue.config');
export default {
data(){
return{
displayURL:""
}
},
mounted(){
console.log("check 1")
this.displayURL=vueconfig.VUE_APP_MyURL
console.log(vueconfig.VUE_APP_MyURL)
console.log("check 3")
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
vue.config看起来像这样:
module.exports = {
VUE_APP_MyURL: process.env.VUE_APP_ENV_MyURL
}
Run Code Online (Sandbox Code Playgroud)
如果我将值硬编码到vue.config文件中的VUE_APP_MyURL,它会在helloworld页面上成功显示.
当我询问它时,VUE_APP_ENV_MyURL成功填充了正确的值:kubectl …