如何解决Vercel next.js 环境变量不起作用
我在 Next.js 项目中使用谷歌地图,一切都在本地工作。谷歌地图密钥存储在 next.config.js 中,我通过 process.env.NEXT_PUBLIC_GOOGLEMAPS 在代码中访问它
当我将项目部署到 Vercel 时,出于安全原因,我没有包含 next.js.config。所以我在 Settings -> Environment Variables 下添加了密钥
但是,环境变量在生产中不起作用。当我控制台日志 process.env.NEXT_PUBLIC_GOOGLEMAPS 时,我得到未定义
可能导致此问题的原因是什么,我该如何解决?谢谢
解决方法
这就是我如何让我的设置工作......
- 我有一个用于本地开发密钥的
env.local
文件。 将.env.local.*
添加到 .gitignore 该文件包含我的键/值对,如下所示:
1 NEXT_PUBLIC_G_KEY=AFLkefjlkwblahblahblah
- 我有一个 next.config.js 文件,在
env
空间中也有这个键:
env: { NEXT_PUBLIC_G_KEY: process.env.NEXT_PUBLIC_G_KEY }
(process.env 根据 docs 开箱即用)
- 我部署到 vercel,所以我用密钥的实际值创建了一个秘密...:
$> yarn now secret add MyAppName_PRoD_G_KEY AFLkefjlkwblahblahblah
- 我在 vercel > settings > 环境变量中转到我的应用程序并在 UI 中创建一个新的应用程序,映射到我刚刚在命令行中创建的秘密。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。