在标准Drupal 8安装中,在节点上使用图像,通过GraphQL相当容易获得图像。这里有很好的例子: https://github.com/gatsbyjs/gatsby/tree/master/examples/using-drupal
使用Acquia Lightning安装配置文件(或者如果您只是在使用我期望的媒体模块),媒体以不同的方式添加图像,在GraphiQL中,我看到关系中的媒体字段,其中唯一的子字段是__typename
python3 myfile.py
我还可以查看allMediaImage(或类似图像),在其中我可以访问图像本身。我还可以将所有节点信息都放在“关系”中,但是我当然需要将节点数据作为主要信息。我真的不了解将查询与节点绑定在一起的最佳方法。
Run Python File in Terminal
我希望我可以以其他方式创建JSON,也许可以更轻松地访问图像。否则,首先获取节点ID的方法,然后使用该方法选择适当的媒体。任何想法
答案 0 :(得分:1)
看起来您已经解决了。但是我要发布答复给其他任何试图弄清这一点的人。
在Gatsby中使用Drupal节点要求您深入了解节点与媒体实体之间的关系,然后然后深入了解媒体实体与文件之间的关系。
我正在使用一个简单的Drupal 8.6.15安装,并启用了核心Media和(实验性)Media Library。并且,我在 Article 内容类型中添加了一个名为 Image Asset 的媒体字段(图像参考)(我删除了常规的 Image 字段)。 / p>
这是我的graphql查询的样子...
query ArticleQuery{
allNodeArticle {
edges {
node {
# Use the node ID for the key in GatsbyJS
drupal_internal__nid
# Access the Article's text info
created(formatString: "DD MMMM YYYY")
title
body {
value
summary
}
# Here is where I access the Image Asset field
relationships {
field_image_asset {
relationships {
field_media_image {
localFile {
childImageSharp {
fluid(maxWidth:1200) {
...GatsbyImageSharpFluid
}
}
}
}
}
}
}
}
}
}
}