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

NextJS生产环境部署后使用createServerComponentClient出现404错误

问题原因及解决办法

1. Vercel环境变量未正确配置

本地开发依赖.env.local里的Supabase配置变量,但Vercel部署时如果没同步添加NEXT_PUBLIC_SUPABASE_URL和NEXT_PUBLIC_SUPABASE_ANON_KEY,或者变量值有误,服务器组件在云端运行时无法初始化Supabase客户端,导致路由渲染失败触发404。

  • 解决:进入Vercel项目的Settings > Environment Variables,检查并添加这两个变量,确保和本地.env.local的内容完全一致,添加后重新部署。

2. Middleware路由匹配规则错误

即便按文档配置了middleware.ts,如果matcher规则没有覆盖/test路径,Supabase的auth中间件不会处理该路由的请求,服务器组件无法获取必要的会话上下文,进而引发渲染错误被Next.js判定为404。

  • 解决:检查middleware.ts的matcher配置,确保包含/test或者使用通用匹配规则(比如['/((?!api|_next/static|_next/image|favicon.ico).*)']),同时确认中间件内的Supabase初始化逻辑无语法错误。

3. Layout被错误标记为客户端组件

createServerComponentClient仅能在Server Component中使用,若layout.tsx顶部添加了'use client'指令,会将其转为客户端组件,引入该方法会导致运行时错误,最终表现为404。

  • 解决:检查layout.tsx顶部,移除'use client'指令,确保它是默认的服务器组件。

4. Vercel部署缓存异常

Vercel的构建缓存可能保留了旧产物,导致引入Supabase的代码未正确生效,引发路由异常。

  • 解决:在Vercel部署页面触发Redeploy,并取消勾选Use existing Build Cache,强制重新构建项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 11:35:03