Next.js中的公共环境变量在Azure Static Web App中不起作用

jvidinwx  于 2023-01-08  发布在  其他
关注(0)|答案(1)|浏览(135)

我之前在Vercel上部署了我的应用程序,但由于我在Azure上使用Azure AD和MongoDB,我也将应用程序的托管转移到Azure上,以减少网络延迟。
我在生产环境中的配置-〉应用程序设置下设置了所有的环境变量,私有变量(例如客户端密码)完全可以被我的Next.js后端读取,但我的前端无法读取以NEXT_PUBLIC为前缀的环境变量,尽管这在我之前在Vercel和Google Cloud Platform上的其他项目中是有效的。
将公共环境变量(NEXT_PUBLIC_*)输出到控制台将返回undefined

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

bqucvtff

bqucvtff1#

我找到了一个变通方法,在build_and_deploy_job-〉steps下,添加一个名为env的字段,在这个字段下,可以像这样放置环境变量:

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

你可以找到我完整的.yml文件here
我想表达的事实是,这是一个次优的解决方案,对于微软这样一家数十亿美元的公司来说,你应该能够通过Azure门户网站将公共/客户端环境变量直接放置在你的静态Web应用程序中。

相关问题