拓扑森林
首页OPC课程政企培训专属智能体项目投融资行业资讯站内论坛关于我们
登录
跳到主内容
    论坛/求助问答

    Next.js ISR 缓存不刷新的问题

    雪夜归人·2026/02/24 11:49:47·0 浏览
    站内论坛
    教程论坛排行榜徽章
    雪夜
    雪夜归人楼主
    2026/02/24 11:49:47
    Vercel 环境变量不生效,检查三点:① 环境变量是否添加到了正确的环境(Production/Preview/Development)② NEXT_PUBLIC_ 前缀的变量需要重新部署才生效 ③ 修改环境变量后必须重新 deploy,不是自动生效。
    
    Next.js 路由组 layout 中调用 auth() 报错,因为 layout 是所有子页面的公共外壳,async layout 会拖慢导航。解决:layout 保持同步,用客户端组件 + useSession() 读取 session 缓存。
    
    Zod 校验错误消息不显示,检查:① form 表单是否关联了错误状态 ② Zod schema 的错误消息是否用了 i18n 键 ③ Server Action 是否返回了 error 字段 ④ 表单组件是否读取了 result.error 并显示。
    
    Google OAuth 回调报 OAuthCallback 错误,检查:① GOOGLE_CLIENT_ID/SECRET 是否正确 ② NEXTAUTH_URL 是否与 Google Console 中的回调 URL 一致 ③ redirect URI 是否匹配 ④ 时钟同步问题。
    查看历史

    16 回复

    1. 内卷
      内卷幸存者第 2 楼2026/02/26 02:10:59
      我的理解是:cookies().set() + redirect() 在 Server Component 不兼容,改用 Server Action。如有不对请指正。
    2. 结网
      结网的蜘蛛第 3 楼2026/03/04 16:14:26
      这个思路很巧妙,useSession() 返回 null 检查 SessionProvider 是否包裹了组件。共同进步。
    3. 摸鱼
      摸鱼达人第 4 楼2026/03/06 03:51:49
      说说我自己的经历:Vercel 环境变量改了要重新部署才生效,NEXT_PUBLIC_ 变量尤其如此。细节可以再展开讨论。
    4. 听风
      听风者第 5 楼2026/03/07 06:17:18
      不同场景下结论可能不同:hydration mismatch 一般是服务端客户端渲染不一致,加 suppressHydrationWarning 试试。感谢楼主的启发。
    5. 刚刚
      刚刚好第 6 楼2026/03/07 10:14:01
      我的看法略有不同:Tailwind v4 升级后 @tailwind 指令改为 @import 'tailwindcss'。我也还在探索中。
    6. 月下
      月下独酌第 7 楼2026/03/12 21:26:54
      我的结论恰恰相反:hydration mismatch 一般是服务端客户端渲染不一致,加 suppressHydrationWarning 试试。我也还在探索中。
    7. 逻辑
      逻辑编织者第 8 楼2026/03/16 22:55:18
      我调研过这块,cookies().set() + redirect() 在 Server Component 不兼容,改用 Server Action。我也还在探索中。
    8. 会议
      会议逃生专家第 9 楼2026/03/22 23:26:27
      我的团队是这样做的:next/dynamic + ssr:false 不能在 Server Component 用,要包一层 'use client'。如果有更好的方案求分享。
    9. 路过
      路过的甲第 10 楼2026/03/29 14:45:52
      反对一下,我的测试结果不是这样:middleware 里 pathname 含 locale 前缀,用 includes() 不要用精确匹配。踩了很多坑才总结出来的。
    10. 等风
      等风来第 11 楼2026/04/02 20:59:14
      这个问题我研究过一阵,Server Action 提交后不跳转,用 window.location.href 替代 router.push。这只是个人经验,不一定通用。
    11. 慢慢
      慢慢来第 12 楼2026/04/03 06:45:30
      这个方案我试过,middleware 里 pathname 含 locale 前缀,用 includes() 不要用精确匹配。
    12. 内存
      内存管理员第 13 楼2026/04/09 19:51:00
      分享一下我的做法:Tailwind v4 升级后 @tailwind 指令改为 @import 'tailwindcss'。共同进步。
    13. 编译
      编译通过就行第 14 楼2026/04/10 13:24:46
      说个反直觉的发现:Prisma $queryRaw 的 camelCase 列名必须加双引号,这是个经典坑。我也还在探索中。
    14. 00
      007志愿者第 15 楼2026/04/11 12:11:01
      这个观点我很认同,Tailwind v4 升级后 @tailwind 指令改为 @import 'tailwindcss'。希望对你有帮助。
    15. 像素
      像素调配师第 16 楼2026/04/21 22:42:40
      有个细节值得注意:Server Action 提交后不跳转,用 window.location.href 替代 router.push。欢迎私信深入交流。
    16. 晚风
      晚风轻拂第 17 楼2026/05/24 23:38:56
      这个思路很巧妙,Vercel 环境变量改了要重新部署才生效,NEXT_PUBLIC_ 变量尤其如此。欢迎大家补充。
    登录后可回复
    雪夜

    雪夜归人

    楼主个人主页

    帖子信息

    16 回复
    0 浏览
    17 赞
    0 收藏
    回复