如何从公用文件夹中访问环境变量?

Posted

技术标签:

【中文标题】如何从公用文件夹中访问环境变量?【英文标题】:How do I access an environment variable from within the public folder? 【发布时间】:2019-11-23 16:02:10 【问题描述】:

在我的 create-react-app 应用程序中,我的公共文件夹中有一个 javascript 文件。在其中,我需要访问一个名为REACT_APP_ACTUAL_ENV 的环境变量,但我不确定我该怎么做。尝试通常的process.env.REACT_APP_ACTUAL_ENV 不起作用,因为process 在公用文件夹中未定义。查看https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables,我可以在公共文件夹中的html 文件中执行%REACT_APP_ACTUAL_ENV%,它工作得很好。但问题是我需要以某种方式在 javascript 文件中执行此操作,但我不确定是否可能。

【问题讨论】:

你找到在js文件中的方法了吗? 很遗憾,没有。我必须找到一种涉及通过本地存储进行通信的解决方法。 参考这个:create-react-app.dev/docs/adding-custom-environment-variables/… 【参考方案1】:

在我的例子中,我必须引用 REACT_APP_FACEBOOK_APP_ID 环境变量来初始化 public/index.html 文件中的 Facebook SDK。

我只是将变量分配给 HTML 元素的属性,然后使用 JavaScript 访问它,如下所示:

...
<meta property="fb:app_id" content="%REACT_APP_FACEBOOK_APP_ID%" />

<script>
   const facebookAppId = document.querySelector('[property="fb:app_id"]').content;
   // use `facebookAppId` here
</script>

【讨论】:

这对于大多数用例来说可能已经足够了,但是,如果我没记错的话,我需要从扩展的后台脚本中访问环境变量,因此从 HTML 文件中编写脚本是行不通的。它必须来自 .js 文件,这可能是不可能的。

以上是关于如何从公用文件夹中访问环境变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何访问公用文件夹外的图像(Laravel)[重复]

如何从资源文件夹动态加载资产到公用文件夹并使用asset()助手访问它们

Exchange Onine 公用文件夹

无法从反应应用程序访问快速服务器中的公用文件夹

如何根据环境在公用文件夹中创建文件

在浏览器中访问公用文件夹时隐藏目录列表