![](/img/trans.png)
[英]Setting Azure Pipelines -> Gradle -> JUnit -> Spring Boot environment variables correctly
[英]gradle spring boot pass environment variables to embedded vuejs app
我有一個使用gradle 5.1
在/static
帶有嵌入式vuejs
字體結尾的spring boot 2
應用程序。 該應用程序旨在托管在不同的服務器上,因此vuejs應用程序的API網址必須是動態的。
我能想到的最合理的解決方案是在服務器上設置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應用。 每次嘗試都以undefined
process.env.API_IP
結尾。 process.env
始終僅由BASE_URL
和NODE_ENV
。
嘗試:
export API_IP=*ip*
,然后運行spring boot應用程序。 /etc/environment
設置變量,注銷,登錄,運行spring boot應用程序 -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*
創建文件, inlinedConfScript
文件包含API_IP=*api*
和JAVA_OPTS=-DAPI_IP=*api*
或僅一個。 .jar
文件相同的目錄中創建.conf
文件,並使用與#5
相同的值選項。 請幫忙 :)
部分解決方案是從vuejs請求中刪除IP /域作為@tianzhipeng的注釋。 但是在這種情況下,我只能在8080
端口運行后端。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.