C
Chen 的数字空间
首页博客项目笔记工具箱
全部博客笔记
C
Chen 的数字空间

记录项目实践、技术文章与学习笔记,持续把想法打磨成可复用的系统能力。

快速导航

  • 首页
  • 博客
  • 项目
  • 笔记
  • 工具箱
  • 近况
  • 留言墙
  • 阅读清单
  • 分类
  • 关于
  • 合作咨询
  • 搜索

订阅频道

  • 全部更新
  • 博客频道
  • 笔记频道
  • 项目频道

关注我

暂未公开社交联系方式。

© 2026 Chen 的数字空间. All rights reserved.

用 App Router 设计博客、项目、笔记三层结构

把内容模型变成真实目录、路由与布局分层,让站点结构从一开始就适合扩展。

发布于 2026-03-26更新于 2026-04-16约 4 分钟阅读
#个人网站#Next.js#App Router

Tutorial Path

从 0 搭建一个可持续写作的 Next.js 个人网站

当前位置:04 / 10

把抽象的内容模型落成真实的路由和目录。

上一篇我们已经确定了站点要同时承载 blog、projects 和 notes。接下来要做的不是立刻开发所有页面,而是先把目录边界定好。因为目录边界会直接影响你后面写页面的方式、拆组件的方式,以及内容读取层的设计。

我会先画一张最小可用的路由图

对于这个项目,我会先确定最核心的一圈路由:

  • / 首页
  • /blog 与 /blog/[slug]
  • /projects 与 /projects/[slug]
  • /notes 与 /notes/[slug]
  • /categories 与 /categories/[slug]

这张图有两个特点。第一,所有内容类型都必须有“列表页 + 详情页”的闭环;第二,所有与公开内容相关的页面都归到同一套主站布局下。

Route Groups 的价值不在“炫技”,而在“提前分区”

我会用 (main) 把主站页面收进去,不是因为它更高级,而是因为它能明确告诉未来的自己:这些页面共享同一套导航、页脚和视觉语言。以后如果真的要做游戏频道、实验频道或者后台区域,就可以放进别的 route group,而不会把主站结构搅乱。

这种提前分区的好处,在项目小的时候不明显;但当页面开始变多、布局开始分化时,它会让你的修改范围非常清晰。

为什么列表页和详情页必须成对考虑

很多人会先写详情页,再回头补列表页。短期看没问题,但一旦涉及 SEO、分页、分类聚合、上一篇下一篇、站内搜索,就会发现详情页其实依赖着整个内容集合的组织方式。

所以我更喜欢成对地设计:有列表页,就同时考虑它怎么进入详情页;有详情页,就同时考虑它如何回到列表、如何被分类页和搜索页发现。

这一层不应该承载太多业务逻辑

App Router 的页面文件,最好只做三件事:拿参数、调内容读取函数、拼页面结构。不要把 frontmatter 解析、分类规范化、标签去重这些逻辑散落到页面里。那些逻辑应该统一沉到 src/lib/content 这种更稳定的边界层。

这样做最大的好处是:页面层始终薄,后续你换内容源、补缓存、加测试,都有明确入口。

配套笔记:App Router 路由地图速记如果你想快速回看这一套路由结构,可以把这篇笔记当作目录卡片使用。

小结

一个适合长期维护的 App Router 结构,不是文件夹堆得多漂亮,而是内容类型、布局边界和读取职责都足够清楚。下一篇我们继续把结构再往里推进:给这三类内容建立一套真正可持续写作的 MDX 内容系统。

上一篇

给个人网站建立一套可持续写作的 MDX 内容系统

下一篇

先想清楚站点要承载什么内容,而不是先写页面

目录

我会先画一张最小可用的路由图Route Groups 的价值不在“炫技”,而在“提前分区”为什么列表页和详情页必须成对考虑这一层不应该承载太多业务逻辑小结