Next.js中的公共环境变量不能在Azure静态Web应用程序中工作



我之前在Vercel上部署了我的应用程序,但由于我在Azure上使用Azure AD和MongoDB,我正在将我的应用程序的托管移到Azure上,以减少网络延迟。

我将所有的环境变量设置在Configuration ->生产环境中的应用程序设置。私有变量(例如客户秘密)是完全可读的我的Next.js后端,但我的前端不能读取由NEXT_PUBLIC前缀的环境变量,即使这以前在我的其他项目上工作过Vercel和谷歌云平台。

将公共环境变量(NEXT_PUBLIC_*)打印到控制台返回undefined

如何区分全栈环境变量和服务器端环境变量?因为NEXT_PUBLIC似乎不起作用。

我找到了一个解决方法。在build_and_deploy_job->steps,增加env字段。在这个目录下,您可以像这样放置环境变量:

env:
NEXT_PUBLIC_VARIABLE: "value1"
NEXT_PUBLIC_ANOTHER_VARIABLE: "value2"

你可以在这里找到我完整的。yml文件。

我想表达这样一个事实,即这是一个次优解决方案,对于微软这样一家价值数十亿美元的公司来说,你应该能够通过Azure Web门户直接在静态Web应用程序中放置公共/客户端环境变量。

最新更新