深学 DeepLearn纯静态学习平台 · 借鉴 DeepTutor

4. Next.js 与部署:从代码到上线

SSG、SSR、静态导出的区别,App Router 的约定,以及本站如何在 Vercel 上线。

约 9 分钟3 道测验 6 张抽认卡

渲染策略:三种上菜方式

同样是 React,Next.js 提供三种「上菜」时机:

策略什么时候生成 HTML适合
SSG 静态生成构建时(deploy 前)教程、博客、文档
SSR 服务端渲染每次请求时个性化、实时内容
CSR 客户端渲染浏览器里现算强交互的后台面板

本站选 SSG:内容在构建时就变成了 out/ 目录下的一堆 HTML,访问时 CDN 直接递文件。

App Router:目录即路由

app/
├── page.tsx                    →  /            首页
├── roadmap/page.tsx            →  /roadmap     学习路线
└── courses/[track]/page.tsx    →  /courses/ai  动态路由(方括号是参数)

不需要手写路由表,文件夹结构就是网址。配一条 output: 'export',next build 就会把整站导出为纯静态文件。

上线:静态 + 一个 Serverless 函数

本站的完整架构:

浏览器 ──静态页面──> Vercel 全球 CDN(out/ 里的 HTML)
   │
   └──/api 请求──> Vercel 函数(香港 hkg1,Hono)
                        │
                        └──> Neon Postgres(新加坡)

部署只有三步:vercel login 登录 → vercel link 关联项目 → vercel --prod 构建并上线。环境变量(数据库连接串)在平台里配置,永不进代码库。

💡 你正在看的就是证据:这个学习网站本身就是「Next.js 静态导出 + Serverless API」这套方案的完整示例。

✍️章节测验(3 题)

选好后点击提交,成绩会记录到数据库,帮你追踪掌握情况。

  1. 1. 静态站点生成(SSG)最适合下列哪种场景?

  2. 2. 在 Next.js App Router 中,路由主要由什么决定?

  3. 3. 本站「前端纯静态 + 少量 API」的架构中,数据库操作发生在哪里?

进度加载中…