Next.js 中的公共环境变量在 Azure 静态 Web 应用程序中无法正常工作。

3

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

我在“配置”->“应用程序设置”下设置了所有的环境变量。私有变量(例如客户端密钥)可以被我的Next.js后端完全读取,但我的前端无法读取以NEXT_PUBLIC为前缀的环境变量,尽管这在我其他在Vercel和Google Cloud Platform上的项目中以前是有效的。

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

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

1个回答

0
我找到了一个解决方法。在build_and_deploy_job -> steps下,添加一个名为env的字段。在此下面,您可以像这样放置您的环境变量:
env:
  NEXT_PUBLIC_VARIABLE: "value1"
  NEXT_PUBLIC_ANOTHER_VARIABLE: "value2"

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接