环境变量值未被处理

environmental variable value not being processed

我还在学习环境。我不确定为什么它不起作用。我的根项目文件夹中有两个文件。 '.env.local' 和 '.env'。而且,.env 的值未被处理。但是,.env.local 工作正常。我相信我遵循了相同的格式。

对于 .env 文件,如果我只是将它们写在页面上并公开它们,那么它们就可以正常工作。

我在这里错过了什么,这是在 NEXTJS 应用程序上。在 vercel 中,我只是将环境变量添加到他们的内置机制中。

在我的代码中,我写了这个来获取值。

env 本地文件

NEXT_PUBLIC_GOOGLE=xxxxxxxxxx

_app.js

我的环境文件 MAILCHIMP_PUBLIC_USERNAME=xxxxx MAILCHIMP_PUBLIC_DOMAIN=xxxx MAILCHIMP_PUBLIC_POST=xxxxxxxxxxxxxxxxxxxx& MAILCHIMP_PUBLIC_ID=xxxxxxxx

您是否准确阅读了 next.js docs 关于 Environment Variables 的内容? ;-)

发生这种情况是因为我们可以在 next.js docs:

中阅读

In general only one .env.local file is needed. However, sometimes you might want to add some defaults for the development (next dev) or production (next start) environment.

Next.js allows you to set defaults in .env (all environments), .env.development (development environment), and .env.production (production environment).

.env.local always overrides the defaults set.

这里您有更多如何在 next.js 中正确使用 .env 的示例。 source, source

祝你学习愉快 ;-)!

我认为 .env.local 覆盖了其他文件。还要记得将 NEXT_PUBLIC_ 添加到变量中。编辑 .env 文件后,您应该停止并重新启动开发服务器。在您的情况下,您应该执行以下操作

NEXT_PUBLIC_MAILCHIMP_PUBLIC_USERNAME=xxxxx
NEXT_PUBLIC_MAILCHIMP_PUBLIC_DOMAIN=xxxx
NEXT_PUBLIC_MAILCHIMP_PUBLIC_POST=xxxxxxxxxxxxxxxxxxxx
NEXT_PUBLIC_MAILCHIMP_PUBLIC_ID=xxxxxxxx