用 Next.js 静态导出做一个零维护博客
为什么不用 SSR
博客的内容在构建时就已经确定,没有必要每次请求都跑一遍服务端。静态导出把页面在 next build 时全部生成成 HTML,之后就是纯文件,CDN 直接发。
好处很直接:
- 没有服务器要维护
- 没有冷启动
- 免费额度几乎用不完
关键配置
// next.config.ts
const nextConfig = {
output: "export",
images: { unoptimized: true },
trailingSlash: true,
};images.unoptimized 是必须的,因为静态导出没有服务端图片优化。trailingSlash 让每个页面输出成 index.html,对静态托管更友好。
动态路由怎么办
用 generateStaticParams 在构建期列出所有 slug:
export function generateStaticParams() {
return getAllSlugs().map((slug) => ({ slug }));
}构建时把每篇文章都渲染好,运行时不再有"动态"。
局限
静态导出不能用的东西也很明确:ISR、服务端 API 路由、按请求渲染。对博客来说都不需要;真需要的时候再换运行时。