相关疑难解决方法(0)

环境变量不起作用(Next.JS 9.4.4)

所以我使用 Contentful API 从我的帐户中获取一些内容并将其显示在我的 Next.Js 应用程序中(我使用的是 next 9.4.4)。这里非常基本。现在为了保护我的凭据,我想使用环境变量(我以前从未使用过它,而且我对所有这些都不熟悉,所以我有点迷茫)。

我正在使用以下内容在我的 index.js 文件中创建 Contentful Client:

const client = require('contentful').createClient({
    space: 'MYSPACEID',
    accessToken: 'MYACCESSTOKEN',
});
Run Code Online (Sandbox Code Playgroud)

MYSPACEID并且MYACCESSTOKEN是硬编码的,所以我想将它们放在一个 .env 文件中以保护它,并且在部署在 Vercel 上时不要将其公开。

我创建了一个.env文件并像这样填充它:

CONTENTFUL_SPACE_ID=MYSPACEID
CONTENTFUL_ACCESS_TOKEN=MYACCESSTOKEN
Run Code Online (Sandbox Code Playgroud)

当然,MYACCESSTOKENMYSPACEID包含正确的键。

然后在我的 index.js 文件中,我执行以下操作:

const client = require('contentful').createClient({
  space: `${process.env.CONTENTFUL_SPACE_ID}`,
  accessToken: `${process.env.CONTENTFUL_ACCESS_TOKEN}`,
});
Run Code Online (Sandbox Code Playgroud)

但是当我使用它时它不起作用yarn dev,我收到以下控制台错误:

{
  sys: { type: 'Error', id: 'NotFound' },
  message: 'The resource could not be found.',
  requestId: 'c7340a45-a1ef-4171-93de-c606672b65c3'
}
Run Code Online (Sandbox Code Playgroud)

这是我的主页以及我如何从 Contentful 检索内容并将它们作为道具传递给我的组件:

const client = …
Run Code Online (Sandbox Code Playgroud)

javascript environment-variables reactjs contentful next.js

5
推荐指数
6
解决办法
2万
查看次数