在AstroJs中,你可以使用模板语言(如Handlebars或EJS)来动态生成静态路径。以下是一个使用AstroJs和Handlebars的示例,将数据传递给getStaticPaths()方法:
首先,确保你已经安装了AstroJs和Handlebars的依赖包。
创建一个名为pages/index.astro
的文件,并在其中编写以下代码:
---
data(route) {
return {
paths: [
{ params: { id: '1' } },
{ params: { id: '2' } },
{ params: { id: '3' } },
],
};
}
---
Index Page
src/index.js
的文件,并编写以下代码:import { createRequestHandler } from '@astrojs/http';
// 定义getStaticPaths()方法
export async function getStaticPaths() {
const { data } = await createRequestHandler().handle('/');
return {
paths: data.paths,
fallback: false,
};
}
src/astro.config.mjs
的文件,并编写以下代码:export default {
/* 配置其他AstroJs选项 */
pages: [
{
match: '/',
component: './pages/index.astro',
},
],
};
astro dev
现在,AstroJs将会使用getStaticPaths()方法中的数据来生成静态路径。