首页 > 解决方案 > 我无法通过 Gatsby 连接到 Contentful

问题描述

当我尝试使用 Gatsby 连接到 Contentful 时,我收到以下错误消息:

Starting to fetch data from Contentful
info Fetching default locale

 ERROR 

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

Used options:
spaceId: "*******ed"
accessToken: "*******ed"
host (default value): "cdn.contentful.com"
environment (default value): "master"
downloadLocal (default value): false
localeFilter (default value): [Function]
forceFullSync (default value): false
pageLimit (default value): 100
useNameForId (default value): true

not finished source and transform nodes - 0.320s

我在 gatsby-config.js 中的代码:

module.exports = {

  siteMetadata: {
    title: `Gatsby`,
    siteUrl: `http://localhost8000`,
    author: '****',
  },
  plugins: [
    {
      resolve: `gatsby-source-contentful`,
      options: {
        spaceId: ${`process.env.CONTENTFUL_SPACE_ID`},
        accessToken: ${`process.env.CONTENTFUL_ACCESS_TOKEN`},
        // My code only works with this syntax ${`...`}
      }
    },
  ]
}

我在此页面上看到了Brent Arias的回复: https://stackoverflow.com/questions/60892938/ Accessing your Contentful space failed with gatsby-source-contentful。他覆盖并创建了内容空间,并在本地重新启动了初始脚本“rg-portfolio”,该脚本本身包含内容配置。它还引用了启动器中的“contentful-data.json”文件。

我使用“hello world”启动器,所以我自己添加了 gatsby-source-contentful 插件,它没有创建“contentful-data.json”文件,我在插件的文档。我删除并重新创建了我的内容空间,然后我重新安装了插件,但它仍然无法工作......

任何的想法?

标签: gatsbycontentful

解决方案


我注意到你如何处理字符串文字的问题。

改变这个:

spaceId: ${`process.env.CONTENTFUL_SPACE_ID`},
accessToken: ${`process.env.CONTENTFUL_ACCESS_TOKEN`},

进入这(推荐):

spaceId: process.env.CONTENTFUL_SPACE_ID,
accessToken: process.env.CONTENTFUL_ACCESS_TOKEN,

或这个:

spaceId: `${process.env.CONTENTFUL_SPACE_ID}`,
accessToken: `${process.env.CONTENTFUL_ACCESS_TOKEN}`,

推荐阅读