【问题标题】:NextJS returning environment variables as undefined in pagesNextJS 在页面中返回未定义的环境变量
【发布时间】:2021-05-05 18:38:30
【问题描述】:

我试图在我的一个页面中获取我的环境变量,但它总是返回未定义。我在访问 api 文件夹中的变量时没有问题,但在 pages/page.tsx 中它不会返回变量。

我使用

访问我的变量

const SECRET = process.env.SECRET 来自我的 .env 文件。

我该如何解决这个问题?

【问题讨论】:

    标签: next.js


    【解决方案1】:

    我相信实现您正在尝试做的事情的首选方法是在 getServerSideProps()/getStaticProps() 方法中的服务器端使用环境变量。这应该可以按预期工作,没有任何技巧。

    但是如果你想在客户端访问环境变量,你必须在你的变量前面加上 NEXT_PUBLIC_

    请参考官方docs

    默认情况下,通过 .env.local 加载的所有环境变量仅在 Node.js 环境中可用,这意味着它们不会暴露给浏览器。

    为了向浏览器公开变量,您必须在变量前面加上 NEXT_PUBLIC_。例如:

    NEXT_PUBLIC_ANALYTICS_ID=abcdefghijk

    【讨论】:

    • 这将暴露给用户。如果我想在我的页面中加载它,我需要将它们放在 env.local 中?
    • @ashes999 使用 .env 文件也应该可以。我还用更多信息更新了答案
    猜你喜欢
    • 2021-08-15
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 2021-01-26
    • 2021-11-26
    • 2019-01-08
    • 1970-01-01
    • 2021-01-04
    相关资源
    最近更新 更多