微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Azure 上的 React 应用程序中未填充 Process.Env

如何解决在 Azure 上的 React 应用程序中未填充 Process.Env

我正在尝试让 React 应用在 Azure 应用服务中运行,但在让环境变量起作用时遇到了困难。

本地

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

REACT_APP_SERVER_URL=http://localhost:5000

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

在 Azure 上

现在我正在尝试在 Azure 中实现相同的功能。我已经使用应用程序设置(在他们的文档 herehere 中描述)设置了配置。

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

kudu debug console

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

process.env printing

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

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

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

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。