Моя настройка Gatsby JS с Ghost в качестве внешней CMS, и я пытаюсь загрузить все изображения страницы локально.
Так что я нашел сообщение в блоге, показывающее мне способ сделать это для одного image, который работал для меня: 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
и childMarkdownRemark
, с которых я и хотел начать.
Сейчас я не уверен, что весь этот подход совершенно неверен или я просто крошечный отойди. Есть мысли?