首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gatsby GraphQL不能在Strapi的"File“类型上查询字段"url”

Gatsby GraphQL不能在Strapi的"File“类型上查询字段"url”
EN

Stack Overflow用户
提问于 2020-07-09 02:11:22
回答 2查看 3.4K关注 0票数 5

我在用盖茨比的前端,Strapi后端写博客。我使用StaticQuery在组件中进行了查询

代码语言:javascript
复制
query={graphql`
        query {
          allStrapiArticle {
            edges {
              node {
                strapiId
                title
                category {
                  name
                }
                image {
                  url
                }
              }
            }
          }
        }
      `}

没有image{url},所有字段都工作得很好。我有错误:error Cannot query field "url" on type "File" graphql/template-strings。我怎么才能修好它?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-09 05:37:52

尽管您已经在Strapi中创建了一个带有url字段的图像对象,但是Strapi + Gatsby下载它,并且您必须更改查询。

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

代码语言:javascript
复制
    singleImage {
     publicURL
    }
    multipleImages {
      localFile {
        publicURL
      }
    }

参考资料:https://github.com/strapi/gatsby-source-strapi

当您在localhost:8000/___graphql操场下运行gatsby开发以测试您的GraphQL查询时,请看一下自动完成,它可能会帮助您获得所需的字段。

本教程还指出了一些有趣的东西。

如果要使用gatsby-image-based映像,可以使用:

代码语言:javascript
复制
  image {
    childImageSharp {
      fluid(maxWidth: 960) {
        ...GatsbyImageSharpFluid
      }
    }
  }

然后,它应该在循环中使用,类似于(使用gatsby-image ):

代码语言:javascript
复制
<Img fluid={data.allStrapiArticle.edges[position].index.image.childImageSharp.fluid} />
票数 3
EN

Stack Overflow用户

发布于 2020-07-16 17:58:12

我也面临过这个问题。关于斯特拉皮的教程建议使用“url”进行查询,但这是错误的。

查询的正确方法是:

代码语言:javascript
复制
      allStrapiArticle {
        edges {
          node {
            strapiId
            title
            category {
              name
            }
            image {
              publicURL
            }
          }
        }
      }

为了显示图像,不要忘记像这样将url替换为publicURL

代码语言:javascript
复制
  <img
    src={article.node.image.publicURL}
    alt={article.node.image.publicURL}
    height="100"
  />
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62806312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档