我有一个使用Astro内置分页的博客部分的静态站点,在src/pages/blog/[page].astro
:
export const itemsPerPage = 12
export async function getStaticPaths({ paginate }) {
const allBlogs = await Astro.glob('./*.md')
return paginate(allBlogs, { pageSize: itemsPerPage })
}
const { page } = Astro.props
const { start, end, total, data, currentPage } = page
然后使用page
道具填充分页UI。这一切工作正常,并导致/blog/1
,/blog/2
等页面正在构建。
我想做的是让src/pages/blog/index.astro
生成/blog
,这将具有与第一页相同的内容,例如/blog/1
。我可以复制逻辑来获取帖子,但我不知道如何访问getStaticPaths
之外的分页数据。有办法做到这一点吗?
像src/pages/blog/[page].astro
这样的动态路由在Astro中只能工作一个层次深度来创建像/blog/[page]
这样的页面,但是你想要的路由(/blog
)比你的动态路由可以创建的更深,所以你必须切换到像src/pages/blog/[...page].astro
这样的动态路由中的REST参数,这将允许你创建任何深度的url/blog
,/blog/2
,/blog/2022/1
等