[英]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.