next.js环境变量未定义(Next.js10.0.5)
我正在使用 Next.js 编写一个网站,并尝试添加谷歌标签管理器。
我遵循了 Next.js Github 示例中的教程,但由于某些原因,我无法访问我的环境变量。
它说我的变量未定义。
我在我的项目文件夹中创建了一个文件 .env.local(与组件、node_modules、页面等处于同一级别)
在这个文件中我创建了一个这样的变量(测试目的):
NEXT_PUBLIC_DB_HOST=localhost
在我的索引页面上,我尝试了以下代码:
console.log("test ", process.env.NEXT_PUBLIC_DB_HOST);
但是在我的控制台中,我得到了一个“未定义的测试”。
我试图将我的变量放入 .env 文件中,但没有成功。
我做错了什么?
回答
此 envs 仅适用于服务器端。要在客户端访问此环境,您需要在 next.config.js 中声明
这边走:
module.exports = {
reactStrictMode: true,
env: {
BASE_URL: process.env.BASE_URL,
}
}