Next.js App Router 下适合博客的目录组织
如何拆分文章页、归档页、标签页,以及给后续 Markdown 或 CMS 接入预留空间。
如果博客未来要持续扩展,目录结构最好一开始就别写死在页面里。
推荐的拆分方式
这里的思路是把职责拆开:
content/posts:文章正文和 frontmattersrc/lib/posts.ts:文件读取、排序、解析src/app/posts/page.tsx:文章列表页src/app/posts/[slug]/page.tsx:文章详情页
为什么这样更稳
因为页面组件只关心“拿到了什么数据,怎么展示”,而不关心数据具体来自本地文件还是远程 CMS。
后面如果你要做:
- 标签筛选
- 年份归档
- RSS 输出
- sitemap 自动生成
都可以在现在这个基础上继续扩展。
MDX 的额外好处
你可以在正文里直接写组件,或者插入强调块、代码块和内部链接。
例如,你可以直接跳转回文章列表。