我试着从一篇博客文章的头条中返回一张作者的图片。前面的事情就是这样构造的;
---
title: XXX
date: "XXX"
description: "XXX"
featuredImage: './featured-image.jpg'
avatar: './author.jpg'
author: 'XXX'
---在gatsby-config中,我有这样的gatsby-plugin-feed设置-
{
resolve: `gatsby-plugin-feed`,
options: {
query: `
{
site {
siteMetadata {
title
author
siteUrl
site_url: siteUrl
}
}
}
`,
feeds: [
{
serialize: ({ query: { site, allMarkdownRemark } }) => {
return allMarkdownRemark.edges.map(edge => {
return Object.assign({}, edge.node.frontmatter, {
description: edge.node.frontmatter.description,
date: edge.node.frontmatter.date,
url: site.siteMetadata.siteUrl + edge.node.fields.slug,
avatar: edge.node.frontmatter.avatar,
custom_elements: [{ "content:encoded": edge.node.html }],
})
})
},
query: `
{
allMarkdownRemark(
sort: { order: DESC, fields: [frontmatter___date] },
) {
edges {
node {
excerpt
html
fields { slug }
frontmatter {
title
date
author
description
avatar
}
}
}
}
}
`,
output: "/rss.xml",
title: "Your Site's RSS Feed",
},
],
},
},这会导致一个错误Error: Field "avatar" of type "File" must have a selection of subfields. Did you mean "avatar { ... }"?,我该如何更改它,以便在RSS提要中返回一个图像URL?
谢谢
发布于 2019-12-06 04:46:31
初始查询需要调用image_url和rssMetadata,还缺少正常工作所需的RSS-plugin查询的一部分代码
guid: rssMetadata.site_url + edge.node.fields.slug
Gatsby RSS Feed Docs也是非常有用的
query: `
{
site {
siteMetadata {
rssMetadata {
site_url
title
author
image_url
}
}
}
}
`,
feeds: [
{
serialize: ({ query: { site, allMarkdownRemark } }) => {
return allMarkdownRemark.edges.map(edge => {
return Object.assign({}, edge.node.frontmatter, {
description: edge.node.frontmatter.description,
date: edge.node.frontmatter.date,
url: rssMetadata.site_url + edge.node.fields.slug,
guid: rssMetadata.site_url + edge.node.fields.slug,
avatar: edge.node.frontmatter.avatar,
custom_elements: [{ "content:encoded": edge.node.html }],
})
})
},最后,可能需要将avatar作为custom_element调用
custom_elements: [
{ "avatar": edge.node.frontmatter.avatar},
{ "content:encoded": edge.node.html }https://stackoverflow.com/questions/59197162
复制相似问题