这是用于首页。
我通过扫描一个充满图像的文件夹并创建节点,在 gridsome.server.js 中创建了一个图像集合,每个节点都包含图像的名称和路径:
let dir = fs.opendirSync(process.cwd() + '/static/images')
let fd, fn, nameParts
const imagesColl = actions.addCollection('images')
while (!!(fd = dir.readSync())) {
fn = fd.name
nameParts = fn.split('.')
imagesColl.addNode({
name: nameParts[0],
path: '/images/' + fn
})
}
dir.close()
在标题页中,我正在创建这些图像的 4x2 网格。
graphql 查询如下所示:
images:allImages {
edges {
node {
name
path
}
}
}
然后在我的 vue 页面组件中,我使用这样的图像
...
<div>
<div class="grid grid-cols-4 shadow-xl">
<g-image width="100" v-for="(edge, ix) of $page.images.edges" :key="ix"
:src="edge.node.path" />
</div>
</div>
因此,集合创建得很好,我可以在页面中查询它们,但似乎根本没有调用 g-image 处理器。
我指定了“100”的宽度,我希望看到一个小图像网格 - 但它没有发生。基本上,生成的输出只是浏览器将它们缩小到大约 300 像素的“缩略图”(对于这个页面大小)。
任何想法表示赞赏。