簡體   English   中英

如何擁有 dynamic.env 文件而不是硬編碼的 localhost?

[英]How to have dynamic .env files instead of hard coded localhost?

我有 2 個.env文件(一個用於 Vue,一個用於 Laravel)。 他們兩個都有localhost硬編碼在他們里面。 這意味着我無法從網絡上的另一台計算機訪問我的應用程序。 如果它是動態的就好了(生產除外)

例如,如果我將 go 連接到我的另一台 PC 並在http://192.168.1.100:47344訪問我的站點,那么它將無法工作,因為它被硬編碼為 localhost (尤其是前端調用)

But I can't write javascript or PHP inside .env files to change localhost to something like window.location.host and for PHP $_SERVER['SERVER_ADDR'] . 我找不到解決方案。。

我的.env

VITE_SERVER_URL=http://localhost:41166
VITE_APP_ENV=dev

還有我的 Laravel .env

APP_ENV=local
APP_CLIENT_URL=http://localhost:47344
APP_URL=http://localhost:41166

即使您的應用程序 url 設置為localhost ,只要沒有防火牆限制,該應用程序仍然可以訪問。 您也可以通過127.0.0.1或分配給您機器的本地 IP 地址訪問它。


獲取本地 ip 地址的方法取決於您的系統,但您可以在node控制台中運行它

const { networkInterfaces } = require("os");
const nets = networkInterfaces();

for (const name of Object.keys(nets)) {
  for (const net of nets[name]) {
    if (net.family === "IPv4" && !net.internal) {
      console.log({name , address: net.address});
    }
  }
}

請注意,如果您在 docker 中運行此設置,則設置可能需要為0.0.0.0 ,因為 127.0.0.1 是環回主機。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM