Gatsby GraphQL无法查询字段“;url";“关于类型”;文件";斯特拉皮大学

Gatsby GraphQL无法查询字段“;url";“关于类型”;文件";斯特拉皮大学,graphql,gatsby,strapi,Graphql,Gatsby,Strapi,我正在用盖茨比的前端和斯特拉皮的后端写博客。我使用StaticQuery在组件中进行了查询 query={graphql` query { allStrapiArticle { edges { node { strapiId title category { name

我正在用盖茨比的前端和斯特拉皮的后端写博客。我使用StaticQuery在组件中进行了查询

query={graphql`
        query {
          allStrapiArticle {
            edges {
              node {
                strapiId
                title
                category {
                  name
                }
                image {
                  url
                }
              }
            }
          }
        }
      `}

没有
图像{url}
,所有字段都可以正常工作。我收到错误:
错误无法查询类型“File”graphql/模板字符串上的字段“url”
。我怎样才能修好它?谢谢

尽管您在Strapi中创建了一个带有
url
字段的图像对象,但Strapi+Gatsby会下载它,您必须对查询进行一些更改

此时,您的所有映像都属于
gatsby源文件系统
,因此必须以不同的方式查询它们。当然,您可以获得
url
,但您的数据结构可能与您在Strapi的后台办公室中创建的数据结构不同。换句话说,您要查找的字段位于另一个对象内,在本例中,
publicURL
将包含您所需的
url
值。以下是如何获取一个或多个图像的示例:

    singleImage {
     publicURL
    }
    multipleImages {
      localFile {
        publicURL
      }
    }
参考:

localhost:8000/\uuuuuuuu graphql
playway下运行gatsby develope时,请查看自动完成功能。为了测试graphql查询,它可能会帮助您获得所需的字段

还指出了一些有趣的东西

如果要使用基于盖茨比图像的图像,可以使用:

  image {
    childImageSharp {
      fluid(maxWidth: 960) {
        ...GatsbyImageSharpFluid
      }
    }
  }
然后它应该在循环中使用,类似于(使用
gatsby image
usage):


我也遇到过这个问题。关于建议使用“url”进行查询的教程,但它是错误的

正确的查询方法是:

      allStrapiArticle {
        edges {
          node {
            strapiId
            title
            category {
              name
            }
            image {
              publicURL
            }
          }
        }
      }
要显示图像,请不要忘记将url切换为publicURL,如下所示:

  <img
    src={article.node.image.publicURL}
    alt={article.node.image.publicURL}
    height="100"
  />


该字段是否存在?是的,当然,我添加了一个图像类型为single Image的字段,必填项。还可以创建一篇带有图像的文章您可能应该通过
publicURL
而不是
url
image
对象中进行查询。
  <img
    src={article.node.image.publicURL}
    alt={article.node.image.publicURL}
    height="100"
  />