路由系统
AR Docs 基于 Astro 的文件路由系统,自动根据目录结构生成页面 URL。
文件路由
基本规则
| 文件路径 | 生成的 URL |
|---|---|
src/pages/index.astro | / |
src/pages/about.astro | /about |
src/pages/docs/guide.astro | /docs/guide |
动态路由
使用 [param] 命名文件创建动态路由:
src/pages/[lang]/docs/[...slug].astro匹配:/zh/docs/getting-started、/en/docs/api
内容集合
文档使用内容集合管理:
// src/content.config.ts
import { defineCollection, z } from 'astro:content';
import { glob } from 'astro/loaders';
const docs = defineCollection({
loader: glob({ pattern: '**/*.{md,mdx}', base: './docs' }),
schema: z.object({
title: z.string(),
description: z.string().optional(),
}),
});
export const collections = { docs };生成静态页面
在动态路由页面中使用 getStaticPaths:
export async function getStaticPaths() {
const docs = await getCollection('docs');
return docs.map((doc) => ({
params: { slug: doc.id },
props: { doc },
}));
}Cloudflare Pages 注意事项
注意
在 Cloudflare Pages 上部署时,动态路由需要在
getStaticPaths中预定义所有可能的路径。