You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Next.js 13的App Router中完全退出静态站点生成?

在Next.js 13 App Router中针对特定页面禁用静态站点生成的方法

你可以通过以下几种方式,让Next.js 13 App Router中的特定页面完全退出静态站点生成,强制采用动态渲染:

  • 强制开启动态渲染:在目标页面的page.js文件顶部添加如下配置,这会让页面在每次用户请求时都在服务器端动态生成,完全跳过静态构建阶段:

    export const dynamic = 'force-dynamic';
    
  • 通过动态函数触发动态渲染:如果页面代码中使用了cookies()、headers()这类Next.js内置的动态函数,或者在组件内发起了未配置缓存的动态数据请求(比如fetch(url, { cache: 'no-store' })),页面会自动切换为动态渲染模式,无需额外配置。

  • 动态路由下禁用静态参数预生成:对于动态路由页面(如app/[slug]/page.js),除了设置dynamic: 'force-dynamic'外,还可以配合dynamicParams: true,确保所有未通过generateStaticParams预生成的路由都采用动态渲染。不过如果要彻底禁用静态生成,直接使用force-dynamic即可覆盖这类场景。

需要注意的是,force-dynamic是最直接的方式,无论页面是否包含静态数据,都会强制走动态渲染流程,适合需要实时数据或依赖请求上下文的页面。

内容的提问来源于stack exchange,提问作者Claude Hasler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 08:36:13