Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Netlify部署无法查询字段“;allContentfulGallery“;“关于类型”;查询「;_Reactjs_Gatsby_Netlify_Contentful_Netlify Cli - Fatal编程技术网

Reactjs Netlify部署无法查询字段“;allContentfulGallery“;“关于类型”;查询「;

Reactjs Netlify部署无法查询字段“;allContentfulGallery“;“关于类型”;查询「;,reactjs,gatsby,netlify,contentful,netlify-cli,Reactjs,Gatsby,Netlify,Contentful,Netlify Cli,我正在React.js、Gatsby.js和Contentful上创建一个应用程序。我的应用程序在本地运行正常,但当我将应用程序部署到Natilify时,无法在类型“query”上查询字段“allContentfulGallery”。和我的GraphQl查询也正常运行。请帮助我,我非常坚持这个错误。“allContentfulGallery”是我的收藏名称 非常感谢 我的gatsby-node.js配置 const galleryResult = await graphql(` qu

我正在React.js、Gatsby.js和Contentful上创建一个应用程序。我的应用程序在本地运行正常,但当我将应用程序部署到Natilify
时,无法在类型“query”上查询字段“allContentfulGallery”。
和我的GraphQl查询也正常运行。请帮助我,我非常坚持这个错误。“allContentfulGallery”是我的收藏名称

非常感谢

我的gatsby-node.js配置

  const galleryResult = await graphql(`
    query gallery {
      allContentfulGallery {
        edges {
          node {
            title
            slug
            images {
              title
              file {
                url
              }
            }
            sys {
              contentType {
                sys {
                  id
                  linkType
                  type
                }
              }
              revision
              type
            }
          }
        }
      }
    }
  `)  
  var galleryArr =
    galleryResult &&
    galleryResult.data &&
    galleryResult.data.allContentfulGallery &&
    galleryResult.data.allContentfulGallery.edges
  galleryArr.forEach(edge => {
    createPage({
      path: `/gallery/${edge.node.slug}`,
      component: galleryTemplate,
      context: {
        title: edge.node.title,
        slug: edge.node.slug,
        sys: {
          ...edge.node.sys,
        },
      },
    })
  })
(根据评论)似乎没有正确设置,因为它们在本地工作(在这两种环境下,
gatsby develope
gatsby build
),但在GitLab和Netlify上都不工作

处理Gatsby+Netlify需要在所有环境变量前面加上Gatsby_uu前缀,如您所见:

任何前缀为
GATSBY_u
的文件都由 Gatsby和在浏览器中提供客户端JavaScript 通道更多信息,请访问 信息

因此,在本地更改所有变量,并在Netlify和GitLab仪表板中使用
GATSBY\uuz
作为前缀

CONTENTFUL_ENVIRONMENT
CONTENTFUL_API_KEY
CONTENTFUL_SPACE_ID
将成为:

GATSBY_CONTENTFUL_ENVIRONMENT
GATSBY_CONTENTFUL_API_KEY
GATSBY_CONTENTFUL_SPACE_ID
请记住,这种方法适用于所有环境变量,而不仅仅是内容变量


通常情况下,我对解决方案非常确定,但在您的情况下,如果您没有正确设置环境变量,插件配置应该会失败,在问题提示之前中断编译,而事实并非如此。

“我的应用程序在我的本地计算机上运行良好”->意味着运行
gatsby build
可以工作吗?你在Netlify中上传了你的内容API密钥了吗?是的,盖茨比构建在我的本地应用程序上运行良好。是的,我已将API密钥上载到我的GitLab,Netlify与GitLab自动同步。它们的前缀是否为
GATSBY_uu
?否。env与CONTENTFUL_ENVIRONMENT='master'相似,而GATSBY config与ENVIRONMENT:process.env.CONTENTFUL_ENVIRONMENT相似?process.env.CONTENTFUL_环境:“master”,