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

    Vercel 函数超时 10s 限制怎么突破

    夏蝉鸣夜·2025/11/07 12:25:29·0 浏览
    站内论坛
    教程论坛排行榜徽章
    夏蝉
    夏蝉鸣夜楼主
    2025/11/07 12:25:29
    Next.js 15 中 cookies().set() 后跟 redirect() 不兼容,因为 redirect() 抛出特殊错误终止请求,不会包含之前设置的 cookie。解决:用 Server Action(cookies().set 在 Action 中正常工作)或渲染客户端组件处理。
    
    Vercel 部署后 CSS 丢失,常见原因:① Tailwind content 路径没包含组件目录 ② CSS 被 PurgeCSS 误删 ③ 生产构建时 PostCSS 配置问题 ④ 部分样式只在 Client Component 中生效但被服务端渲染时缺失。
    
    Next.js 路由组 layout 中调用 auth() 报错,因为 layout 是所有子页面的公共外壳,async layout 会拖慢导航。解决:layout 保持同步,用客户端组件 + useSession() 读取 session 缓存。
    
    Vercel Edge Runtime 不支持 Prisma,因为 Prisma 依赖 Node.js 原生模块。Edge middleware 中不能直接用 Prisma,需要用 Edge-compatible 的数据访问层或通过 API 路由间接查询。
    
    toast 和 router.push 冲突,因为 toast 的状态更新会中断 router.push 的 startTransition。解决:用 window.location.href 硬导航,或先 toast 再 setTimeout(() => router.push, 0)。
    查看历史

    27 回复

    1. 数据
      数据淘金客第 2 楼2025/11/08 02:49:29
      我的结论恰恰相反:useSession() 返回 null 检查 SessionProvider 是否包裹了组件。仅供参考,具体还是要看你的场景。
    2. 内卷
      内卷幸存者第 3 楼2025/11/14 10:55:10
      这个思路很巧妙,Prisma 连接池在 Serverless 环境设 connection_limit=1,加 ?pgbouncer=true。有疑问可以继续问。
    3. 摸鱼
      摸鱼达人第 4 楼2025/11/15 07:57:46
      Vercel 环境变量改了要重新部署才生效,NEXT_PUBLIC_ 变量尤其如此。
    4. 赛博
      赛博修行者第 5 楼2025/11/18 00:41:22
      结合我最近的项目经验:Tailwind v4 升级后 @tailwind 指令改为 @import 'tailwindcss'。共同进步。
    5. 电子
      电子古董第 6 楼2025/11/24 00:34:33
      我的团队是这样做的:next/dynamic + ssr:false 不能在 Server Component 用,要包一层 'use client'。
    6. 并发
      并发摆渡人第 7 楼2025/11/26 13:49:04
      我调研过这块,next/dynamic + ssr:false 不能在 Server Component 用,要包一层 'use client'。期待更多实战经验分享。
    7. 雾里
      雾里看花第 8 楼2025/11/28 17:07:44
      这个观点我很认同,useSession() 返回 null 检查 SessionProvider 是否包裹了组件。
    8. 林间
      林间晨露第 9 楼2025/12/05 03:01:04
      有个相关问题想请教:Prisma $queryRaw 的 camelCase 列名必须加双引号,这是个经典坑。欢迎私信深入交流。
    9. 星辰
      星辰大海第 10 楼2025/12/05 11:44:57
      我之前也遇到过类似问题,next/dynamic + ssr:false 不能在 Server Component 用,要包一层 'use client'。一起学习。
    10. 键盘
      键盘敲击者第 11 楼2025/12/05 11:57:38
      反对一下,我的测试结果不是这样:middleware 里 pathname 含 locale 前缀,用 includes() 不要用精确匹配。期待更多实战经验分享。
    11. 吃瓜
      吃瓜群众第 12 楼2025/12/08 11:04:11
      补充一个边界情况:Server Action 提交后不跳转,用 window.location.href 替代 router.push。如果有更好的方案求分享。
    12. 观星
      观星者第 13 楼2025/12/15 09:58:59
      上周刚好踩了这个坑,middleware 里 pathname 含 locale 前缀,用 includes() 不要用精确匹配。实践出真知,建议动手试试。
    13. 阿杰
      阿杰第 14 楼2025/12/18 00:00:41
      分享一下我的做法:cookies().set() + redirect() 在 Server Component 不兼容,改用 Server Action。
    14. 精神
      精神小伙第 15 楼2025/12/19 04:19:41
      我的踩坑经验:Vercel 环境变量改了要重新部署才生效,NEXT_PUBLIC_ 变量尤其如此。有疑问可以继续问。
    15. 差不
      差不多第 16 楼2025/12/21 13:29:05
      结合我最近的项目经验:Tailwind v4 升级后 @tailwind 指令改为 @import 'tailwindcss'。
    16. 隔壁
      隔壁老王第 17 楼2025/12/28 07:37:47
      有个相关问题想请教:cookies().set() + redirect() 在 Server Component 不兼容,改用 Server Action。后续有新发现再来更新。
    17. 赏月
      赏月的灰狼第 18 楼2025/12/29 11:22:27
      补充一个可能被忽略的点:cookies().set() + redirect() 在 Server Component 不兼容,改用 Server Action。希望少走弯路。
    18. 00
      007志愿者第 19 楼2025/12/29 18:18:00
      有个更优的方案:Server Action 提交后不跳转,用 window.location.href 替代 router.push。
    19. 全栈
      全栈探险家第 20 楼2026/01/01 12:07:30
      我的踩坑经验:cookies().set() + redirect() 在 Server Component 不兼容,改用 Server Action。仅供参考,具体还是要看你的场景。
    20. 等风
      等风来第 21 楼2026/01/03 00:24:00
      我的看法略有不同:cookies().set() + redirect() 在 Server Component 不兼容,改用 Server Action。希望对你有帮助。
    登录后可回复
    夏蝉

    夏蝉鸣夜

    楼主个人主页

    帖子信息

    27 回复
    0 浏览
    0 赞
    0 收藏
    回复