if ($app->environment('local'))
{
// Here you can generate some <script></script> code or you could just generate
// hidden div like <div id="environment" style="display:none">local</div>
}
MEILISEARCH_HOST=http://localhost:7700
VITE_MEILISEARCH_HOST=$MEILISEARCH_HOST # reusing the variable
在JS中:
console.log(import.meta.env.VITE_MEILISEARCH_HOST);
// ouputs: 'http://localhost:7700'
console.log(import.meta.env.MEILISEARCH_HOST);
// outputs: undefined, so all your other .env vars are safe
有关详细信息,请访问Env Variables and Modes@www.example.comvitejs.dev
8条答案
按热度按时间f0brbegy1#
您可以在视图中将env变量作为javascript字符串回显:
您的.env文件将如下所示:
姓名=亚历克斯
tuwxkamq2#
如文档所示:你可以通过在你的
.env
文件中用MIX_
作为前缀来使用env
变量。例如:
MIX_SENTRY_DSN_PUBLIC=http://example.com
在
.env
文件中定义变量后,可以使用process.env
对象从javascript文件访问该变量。例如:
process.env.MIX_SENTRY_DSN_PUBLIC
yacmzcpb3#
如果从主js文件外部访问env变量,可以执行以下操作:
然后:
需要混合和dotenv配置给你访问权限。:)
zi8p0yeb4#
有很多方法。
最好的方法之一是将数据从Controller传递到视图:
或者像这样:
或者您可以使用会话:
当然,您可以创建专用路由并使用Ajax获取它,但我不认为这是在现实生活中的Web应用程序中实现此目的的好方法。
e7arh2l65#
首先,确保你可以访问你的env文件里面的PHP文件或刀片文件,你可以查看这个答案https://stackoverflow.com/a/60790227/13012364
然后,如果你的javascript文件与你的blade文件分离,你可以使用window对象来放置你的env值,例如
之后,您可以使用window对象访问javascript文件中的env值
cu6pst1q6#
一个更干净的解决方案是使用
laracasts/utilities
包将变量发送到文件。使用
composer require laracasts/utilities
命令安装它。然后在控制器顶部添加
use JavaScript;
。最后将变量发送如下:
JavaScript::put([ 'foo' => $bar ]);
.3zwtqj6y7#
如果你使用vite,它使用dotenv来加载额外的ENV变量,也就是说如果你在
.env
中使用VITE_
作为前缀,你可以在js中使用它:示例:
在
.env
中:在JS中:
有关详细信息,请访问Env Variables and Modes@www.example.comvitejs.dev
wsxa1bj18#
要在JavaScript代码中访问Laravel应用程序的.env文件中定义的环境变量,您可以在Node.js环境中使用process.env对象。但是,由于您在浏览器环境中使用Algolia,因此需要将环境变量公开给客户端JavaScript。
实现这一点的一种方法是在包含环境变量的blade文件中创建一个全局JavaScript对象。
在.env文件中,为测试和生产环境定义两个不同的Algolia应用程序ID和API密钥:
在Laravel blade文件中,您可以定义一个全局JavaScript对象,其中包含如下所示的环境变量:
这将创建一个window.ALGOLIA_APP_ID和window.ALGOLIA_API_KEY全局变量,您可以在JavaScript代码中访问这些变量。然后,您可以使用这些变量初始化您的Algolia客户端对象,并根据环境选择适当的索引。
此代码将根据当前环境使用适当的Algolia应用程序ID和API密钥,并为该环境选择适当的索引。
希望这能帮上忙。