所以我使用 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)
当然,MYACCESSTOKEN
并MYSPACEID
包含正确的键。
然后在我的 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)