【发布时间】:2021-07-01 16:07:14
【问题描述】:
我正在将 Gatsby 和 graphql 与无头 WordPress 一起用于网站。
我想使用 gatsby-image 插件来获得来自 WordPress 的图像的 srcSet 和模糊效果,但它在 graphiQL 操场上引发错误。为了更好地理解,我想在下面逐步解释整个过程。
gatsby-image 插件有two types of responsive image 固定和流畅:
要在两者之间做出选择,请问自己:“我知道这张图片的确切尺寸吗?”如果是,则为第一种。如果没有,并且它的宽度和/或高度需要根据屏幕的大小而变化,那么它就是第二种类型。
所以,我需要第二个 - fluid。
它还有two image components静态和动态。
如果您使用的是每次使用该组件时都相同的图像,例如徽标或首页英雄图像,则可以使用 StaticImage 组件。
如果您需要动态图像(例如它们来自 CMS),您可以通过 GraphQL 加载它们并使用 GatsbyImage 组件显示它们。
我正在使用 WordPress(即 CMS)。所以,我需要第二个 - Dynamic
在编写查询之前,我必须了解如何对来自 WordPress 方案的文件进行正确的查询。
为此,我发现 Gatsby 有一个 gatsby-source-wordpress 插件可以从 WordPress 中提取图片。
我已经安装并配置了所有必需的软件包,例如gatsby-plugin-image、gatsby-plugin-sharp、gatsby-transformer-sharp 等。我所做的一切都完全按照官方文档所说的那样进行。
当时一切都准备好进行查询,所以我尝试了他们在文档中的第一个示例 - pulling images from wordpress 并且它工作了。
所以是时候最终得到我想要的并尝试第二个示例(流体),但它失败并显示错误消息 Cannot return null for non-nullable field ImageSharpFluid.srcSet.
当我尝试获取 gatsbyImageData 时它也失败了
我该如何解决这个问题?
提前致谢。
【问题讨论】:
-
' # 在 GraphQL 资源管理器中,使用字段名称 # 如“src”。在您网站的代码中,删除它们 # 并使用 Gatsby 提供的片段。 src'
-
片段结果相同
-
notices/cmets 是关于使用图像道具...它们不再是公开/严格定义的...不应该在操场上测试...使用图像组件或
console.log()页面/模板查看道具 -
控制台出现同样的错误
-
查询片段,
localFile已记录?全部无效/一些道具? ...构建日志中的错误?组件 props 或数据相关请求中有什么?
标签: graphql gatsby gatsby-image graphiql wp-graphql