我正在使用Astro。该项目使用了相当多的图像,我想简化我目前添加新图像的方式。我的路由如下:
example.com/pictures/[collection]
(“[”和“]”代表动态路由)
允许例如:example.com/pictures/mixed-tecnique
example.com/pictures/graphite
example.com/pictures/acrylic
在pages/pictures/[collection].astro
文件中,我想做以下事情(或类似的事情):
---
import * as collections from "public/img/collections"
const { collection } = Astro.props
---
{collections[collection].map(imgSrc => <img src={imgSrc} />)}
所以现在,要有一个新的收藏路径,我只需要创建一个新的文件夹并将图像放在那里。
有什么办法可以达到同样的结果吗?提前感谢!!
2条答案
按热度按时间5uzkadbs1#
有很多不同的方法来实现这样的特性,但这里有一个使用
fast-glob
库的简单示例注意:我使用了
fast-glob
而不是Astro.glob
或import.meta.glob()
,因为它可以将变量作为参数(使此逻辑更容易/更具动态性),并且因为它只返回文件/文件夹路径的数组,而不是同时尝试返回文件内容7vux5j2d2#
这就是我如何做到的:
如果您使用的是experimental assets feature: