我的设置是使用 Ghost 作为外部 CMS 的 GatsbyJS,我正在尝试在本地加载页面的所有图像。
所以我找到了一篇博客文章,向我展示了一种对一张图片执行此操作的方法,这对我有用:https ://ghost.joonaviertola.com/optimize-ghost-images-in-gatsby/
然后我想我也可以对多个图像执行此操作,而不是将一个图像链接到节点,而是创建一个包含所有图像的数组。我第一次尝试只为一张图片。直接链接图像并将图像推送到节点上的数组中。
imgUrls = [...]; // list of absolute URLs of remote images
node.localImages = [];
// test with only one image first
if (imgUrls.length) {
const fileNode = await createRemoteFileNode({
url: imgUrls[0],
store,
cache,
createNode,
parentNodeId: node.id,
createNodeId
});
if (fileNode) {
node.localImage___NODE = fileNode.id;
node.localImages.push(fileNode);
}
}
在 GraphQL 资源管理器中,我现在看到:
工作也是如此node.localImage___NODE = fileNode.id
,我得到了链接到节点的图像,childImageSharp
里面有。
node.localImages.push(fileNode)
另一方面似乎有效,因为我得到了一个包含(在这种情况下)一个图像的数组。只有childImageSharp
andchildMarkdownRemark
丢失了,这是我想要开始的部分。
现在我不确定这整个方法是否完全错误,或者我只是一步之遥。有什么想法吗?