如何在javascript中访问laravel的.env变量?

14 浏览
0 Comments

如何在javascript中访问laravel的.env变量?

我目前在Laravel应用程序中使用Algolia作为我的搜索引擎,所以每当创建记录时,它也会被发送到Algolia数据库中。当然,我希望将我的数据在Algolia数据库中分为测试集用于本地开发和生产集用于实际网站。我已经在一个JavaScript文件中定义了我正在使用的Algolia数据库的索引。

现在我想知道如何根据我的APP_ENV变量做出相应的反应,以根据当前环境进行更改。显然,我需要将一些内容放入我的JavaScript的if语句中,但我如何使我的JavaScript正确地访问.env变量呢?

希望有人能帮助我。

谢谢。

0
0 Comments

问题出现的原因:想要在JavaScript中访问Laravel的.env变量。

解决方法:

1. 首先,在主要的JavaScript文件之外,可以使用以下代码:

let mix = require('laravel-mix');
require('dotenv').config();

2. 然后,可以通过以下代码访问.env变量:

let my_env_var = process.env.MY_ENV_VAR;

这样,通过引入mix和dotenv配置,就可以访问.env变量了。

这样做是否可以访问所有的.env变量?比如从控制台访问?

答案是可以的。以上方法可以让你在JavaScript中访问所有的.env变量,包括从控制台中访问。

0
0 Comments

问题的原因是在Laravel框架中,想要在JavaScript中访问.env文件中的变量。解决方法是在视图中以JavaScript字符串的形式输出.env变量,并在.env文件中设置相应的变量。具体的解决方法如下:

在视图中,可以通过以下方式将.env变量作为JavaScript字符串输出:


同时,.env文件的内容应该如下所示:

NAME=Alex

需要注意的是,如果在字符串中使用单引号,可能会导致语法错误,可以使用双引号或者使用双引号括起来的双引号来解决这个问题。但是在这个情况下,不会出现错误,花括号是Blade模板标记,它们之间的代码在运行周围的JavaScript代码之前在服务器端渲染。

0
0 Comments

问题的原因是在Laravel中,想要在JavaScript中访问.env文件中的变量。解决方法是在.env文件中使用MIX_前缀定义变量,并通过process.env对象在JavaScript文件中访问。

在使用vue组件时,可以直接使用process.env.MIX_SENTRY_DSN_PUBLIC来访问.env文件中的变量。但是如果只使用普通的blade模板,则需要使用{{ env('MIX_SENTRY_DSN_PUBLIC') }}来访问。

另外,可以通过引入mix和dotenv配置文件来访问.env文件中的变量。并且在.env文件中可以使用扩展的变量,如MIX_APP_ENV=${APP_ENV},然后可以通过process.env.MIX_APP_ENV来访问。

需要注意的是,在更改或添加变量后,需要重新编译任务。但是这种方法在生产环境中可能无法实现,并且Laravel默认会提交编译后的文件,使得.env变量实际上是硬编码的。

参考链接:[https://laravel.com/docs/master/mix#environment-variables](https://laravel.com/docs/master/mix#environment-variables) [https://github.com/JeffreyWay/laravel-mix/issues/1155](https://github.com/JeffreyWay/laravel-mix/issues/1155)

0