java - gradle spring boot 将环境变量传递给嵌入式 vuejs 应用程序
问题描述
我有一个使用 gradlespring boot 2
嵌入vuejs
font-end的应用程序。该应用程序旨在托管在不同的服务器上,因此 vuejs 应用程序的 API url 必须是动态的。/static
5.1
我能想到的最合理的解决方案是API_IP
在服务器上设置环境变量并让vuejs
应用程序像这样检索它们:
let url = `http://${process.env.API_IP}:9090/api`;
if (process.env.NODE_ENV === 'development') {
url = `http://localhost:8090/api`;
}
gradle 构建脚本:
bootJar {
dependsOn ':ui:jar'
into('BOOT-INF/classes/static') {
from "${project(':ui').projectDir}/dist"
}
launchScript {
properties 'inlinedConfScript': 'startScript'
}
}
但是,我无法将环境变量传递给 vue app。每次尝试都以process.env.API_IP
being结束undefined
。process.env
总是只包含BASE_URL
和NODE_ENV
。
试过:
export API_IP=*ip*
然后运行 spring boot 应用程序。- 设置变量
/etc/environment
,注销,登录,运行spring boot app - 将其作为运行参数传递
-DAPI_IP=*api*
- 放
JAVA_OPTS=-DAPI_IP=*api*
根据https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html:
- 创建文件以
inlinedConfScript
包含API_IP=*api*
和JAVA_OPTS=-DAPI_IP=*api*
/或仅包含每个文件。 - 在与具有相同值选项
.conf
的文件相同的目录中创建文件。.jar
#5
请帮忙 :)
解决方案
部分解决方案是从 vuejs 请求中删除 ip/domain 作为@tianzhipeng 的评论。8080
但是,在这种情况下,我只能在端口上运行后端。
推荐阅读
- python - 相对 XPath 在循环中错误地选择了相同的元素
- python-3.x - bash:cookiecutter:找不到命令(使用 conda 安装的 cookiecutter)
- vba - DSum 在现场控制中工作,但在 VBA 中溢出错误 6
- html - 这个填充是从哪里来的,为什么弹性盒子会重叠?
- qnamaker - QnA 制造商可以进行版本控制吗?
- c++ - 将 char* 传递给 QString
- node.js - 无法读取 null Nodejs 的属性“元数据”
- git - 来自 VSCode 的 Github 提交没有配置文件图标
- javascript - 为什么jQuery的ajax成功方法不起作用?
- javascript - 如何使用 VueJs 阻止文本区域中的某些字符?