静态渲染(Static Site Generation,SSG)是在构建时预先渲染页面,生成静态 HTML 文件。 所有用户访问时都会获得相同的 HTML,提供最快的加载速度。
核心特性:
next build 时渲染.next/server/app/标题:
静态渲染页面
描述:
这个页面在构建时生成,内容不会改变
构建时间:
2025-12-17T09:54:12.782Z
访问次数(构建时生成):
912
pnpm build在构建日志中,这个页面会显示为:○ /rendering-test/static
○ 表示静态生成
构建时间和访问次数始终保持不变(构建时确定)
右键 → 查看页面源代码,可以看到完整的 HTML(包括数据)
[STATIC RENDERING] 日志只在构建时打印, 访问页面时不会打印新的日志
cat .next/server/app/rendering-test/static/page.js可以看到预渲染的内容
// app/blog/[slug]/page.tsx
// 默认就是静态渲染(无需额外配置)
export default async function BlogPost({ params }) {
// 这个数据获取在构建时执行
const post = await fetchPost(params.slug);
return (
<article>
<h1>{post.title}</h1>
<p>{post.content}</p>
</article>
);
}
// 如果有动态路由,需要提供所有可能的路径
export async function generateStaticParams() {
const posts = await fetchAllPosts();
return posts.map((post) => ({
slug: post.slug,
}));
}
// 明确指定为静态渲染(可选)
export const dynamic = 'force-static';