【问题标题】:Process.Env Isn't Populated in React App on AzureProcess.Env 未填充在 Azure 上的 React 应用程序中
【发布时间】:2021-07-14 02:12:46
【问题描述】:

我正在尝试让一个 React 应用在 Azure 应用服务中运行,但很难让环境变量正常工作。

本地

在本地运行时,我使用.env.local 文件加载环境变量(未检入 git)。

REACT_APP_SERVER_URL=http://localhost:5000

然后我可以通过使用process.env.REACT_APP_SERVER_URL 在我的应用程序中使用它。一切都按预期进行。

在 Azure 上

现在我正试图在 Azure 中实现同样的功能。我已经使用 Application Settings 设置了配置(在他们的文档 herehere 中进行了描述)。

我可以使用 kudu 进入调试控制台,看到正在设置环境变量。

但使用process.env.REACT_APP_SERVER_URL 并没有获得该值。如果我console.log(process.env) 我的网址不显示。

我的 React 应用是几天前使用 create-react-app cli 创建的。我的 React 应用程序是通过 github 操作使用以下启动命令部署的:(pm2 serve /home/site/wwwroot/build --no-daemon --spa)

根据我在网上阅读的内容,它“应该”正常工作,所以我不确定故障是什么。我的想法是 pm2 可能会阻塞环境变量,但不确定。

This guy 似乎与我有类似的问题,但没有详细说明该问题的答案。而且我不想将配置存储在 package.json 中,因为这是 Azure Config 应该帮助我做的。

【问题讨论】:

    标签: reactjs azure azure-web-app-service pm2


    【解决方案1】:

    从基础架构的角度来看,React 单页应用程序只是一堆静态文件——HTML、JS、CSS 等等。它无法进入服务器读取这些变量,因为没有运行服务器端代码。

    您将不得不捆绑您的环境变量,无论是在.envpackage.json 还是其他任何地方。

    【讨论】:

    • 好点,我不认为这是不可行的。让我深入研究这些选项。
    猜你喜欢
    • 2021-04-24
    • 2011-07-24
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 2022-07-04
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    相关资源
    最近更新 更多