【发布时间】:2021-05-05 18:38:30
【问题描述】:
我试图在我的一个页面中获取我的环境变量,但它总是返回未定义。我在访问 api 文件夹中的变量时没有问题,但在 pages/page.tsx 中它不会返回变量。
我使用
访问我的变量const SECRET = process.env.SECRET 来自我的 .env 文件。
我该如何解决这个问题?
【问题讨论】:
标签: next.js
我试图在我的一个页面中获取我的环境变量,但它总是返回未定义。我在访问 api 文件夹中的变量时没有问题,但在 pages/page.tsx 中它不会返回变量。
我使用
访问我的变量const SECRET = process.env.SECRET 来自我的 .env 文件。
我该如何解决这个问题?
【问题讨论】:
标签: next.js
我相信实现您正在尝试做的事情的首选方法是在 getServerSideProps()/getStaticProps() 方法中的服务器端使用环境变量。这应该可以按预期工作,没有任何技巧。
但是如果你想在客户端访问环境变量,你必须在你的变量前面加上 NEXT_PUBLIC_
请参考官方docs:
默认情况下,通过 .env.local 加载的所有环境变量仅在 Node.js 环境中可用,这意味着它们不会暴露给浏览器。
为了向浏览器公开变量,您必须在变量前面加上 NEXT_PUBLIC_。例如:
NEXT_PUBLIC_ANALYTICS_ID=abcdefghijk
【讨论】: