使用 gatsby-source-contentful 访问您的 Contentful 空间失败

Bar*_*000 11 contentful gatsby

gatsby: 2.20.8
gatsbh-source-contentful: 2.2.5
Run Code Online (Sandbox Code Playgroud)

我已经验证了我的spaceId并且accessToken是正确的,并且我已经验证了这些密钥可以访问我的 Contentfuldevelopment环境。我试过了:

  • 启用 GATSBY_CONTENTFUL_OFFLINE
  • 删除.cache目录
  • 删除 node_modules
  • 设置environment为“master”并完全删除它
  • 将 env vars 包装在模板文字中(在旧的 github 问题上建议)

我不断收到此错误。有任何想法吗?

ERROR 

Accessing your Contentful space failed.
Try setting GATSBY_CONTENTFUL_OFFLINE=true to see if we can serve from cache.

Used options:
spaceId: "*********z1u"
accessToken: "*****************************************vMI'"
environment: "development"
host (default value): "cdn.contentful.com"
downloadLocal (default value): false
localeFilter (default value): [Function]
forceFullSync (default value): false
pageLimit (default value): 100
useNameForId (default value): true
Run Code Online (Sandbox Code Playgroud)

这是我的代码 gatsby-config.js

{
  resolve: `gatsby-source-contentful`,
  options: {
    spaceId: process.env.CONTENTFUL_SPACE_ID,
    accessToken: process.env.CONTENTFUL_ACCESS_TOKEN,
    environment: process.env.CONTENTFUL_ENVIRONMENT,
  },
},
Run Code Online (Sandbox Code Playgroud)

小智 6

不确定你是否同时能正常工作,但我也遇到了同样的问题,并在 Github https://github.com/gatsbyjs/gatsby/issues/19392上发现了这个问题,这就是你和我所遇到的问题。

显然,在较新版本的 gatsby-source-plugin 中,它也需要密钥才能访问主环境(在我看来这很荒谬)。

在授予对主环境的密钥访问权限后,它开始工作。


Bre*_*ias 0

正如我在对你的问题的评论中所说,我怀疑这与我的盖茨比构建预期的内容模型和内容空间中实际存在的模型之间的差异有关。为此,我决定完全删除我的 Contentful 空间并重新创建它。然后,我重新运行了 rg-portfolio 存储库附带的自动化脚本,该脚本负责创建我所有的初始内容模型。这是 rg-portfolio 说明的一部分。

contentful space --space-id xxxxxxxxx0b9 import --content-file contentful-data.json
Run Code Online (Sandbox Code Playgroud)

脚本成功完成,没有错误 - 只有有关速率限制的警告。

当我最终重试时,gatsby develop它成功了!

赛后分析。

我怀疑这个内容丰富的“模型差异”问题的部分原因是因为当我第一次运行该contentful-data.json脚本时:

  1. 它正在运行一个内容丰富的空间,其中已经有一些不相关的内容模型。
  2. 它给出了实际的错误,让我怀疑它是否真的工作正常。

因此,我有很大的空间相信内容空间中的模型存在“错误”。