Next.js metadata 中 alternates.languages 不生效
Prisma 软删除查询过滤重复,用 middleware 自动过滤 deletedAt: null。Prisma 6 支持 extends 中间件,在 query 前自动加 deletedAt 过滤条件,避免每次查询都手动加。 useSession() 返回 null,检查:① SessionP...
Prisma 软删除查询过滤重复,用 middleware 自动过滤 deletedAt: null。Prisma 6 支持 extends 中间件,在 query 前自动加 deletedAt 过滤条件,避免每次查询都手动加。 useSession() 返回 null,检查:① SessionP...
Tailwind v4 升级后样式失效,大版本升级有 breaking changes。检查:① tailwind.config.ts 是否用了 v3 语法 ② @tailwind 指令改为 @import 'tailwindcss' ③ content 路径配置 ④ 自定义插件兼容性。建议看官方迁...
Prisma 连接池超时一般是 connection_limit 设置不当。Serverless 环境(Vercel)建议 connection_limit=1,因为每个函数实例独立连接。如果用 PgBouncer 或 Supabase connection pooler,URL 加 ?pgboun...
Auth.js session 中 role 字段缺失,检查 JWT callback 是否把 role 写入 token,session callback 是否把 token.role 写入 session.user.role。两步缺一不可。 Auth.js 5 signIn redirect:...
next/image 图片模糊或变形,检查:① 是否设置了 width/height 或 fill ② fill 模式需要父容器 position: relative ③ priority 只给 LCP 图片 ④ sizes 属性帮助浏览器选择正确尺寸 ⑤ 避免在 Server Component...
Prisma $queryRaw 中 camelCase 列名必须加双引号:SELECT "newUserQuota" FROM users。不加双引号 PostgreSQL 会当作不区分大小写的标识符,找不到 camelCase 列。TS 类型声明也要与 SQL 别名一致。 generateSt...
next-intl 翻译键缺失不报错是默认行为。要启用严格模式:在 next-intl 配置中设置 onError 回调,或用 getTranslations 时检查返回值。开发环境建议开启严格模式及早发现缺失键。 Prisma $queryRaw 中 camelCase 列名必须加双引号:SEL...
Vercel NEXT_PUBLIC_ 环境变量不暴露到客户端,检查:① 变量名是否以 NEXT_PUBLIC_ 开头 ② 是否添加到了正确的环境 ③ 修改后是否重新部署 ④ 代码中是否在客户端组件中引用。 next-intl t() 模板字符串拼接报错,因为动态拼接翻译键不被支持。用显式 Rec...
Zod refine 校验不触发,检查:① refine 是否在 schema 末尾 ② 是否用了 safeParse(parse 会抛错) ③ refine 的 path 是否正确指向字段 ④ 异步 refine 用 superRefine + async。 React Server Compo...
Auth.js 5 signIn redirect:false 返回 { error, ok, status, url }。判断成功:!result.error && result.ok。注意 result.url 可能含 ?error= 参数,用 redirectTo 显式指定避免误判。 Nex...
Next.js middleware 中 pathname 精确匹配失效,因为 intl 中间件处理后 pathname 含 locale 前缀(如 /zh/dashboard)。用 pathname.includes() 或 getLocaleFromPathname() 而非 pathname...
Next.js middleware 中 pathname 精确匹配失效,因为 intl 中间件处理后 pathname 含 locale 前缀(如 /zh/dashboard)。用 pathname.includes() 或 getLocaleFromPathname() 而非 pathname...
Google OAuth 回调报 OAuthCallback 错误,检查:① GOOGLE_CLIENT_ID/SECRET 是否正确 ② NEXTAUTH_URL 是否与 Google Console 中的回调 URL 一致 ③ redirect URI 是否匹配 ④ 时钟同步问题。 Next....
router.push 不更新 URL,Next.js 15 + next-intl 在 useSession 触发 re-render 时可能取消 router.push 的 startTransition。解决:用 window.location.href 硬导航(认证流程的例外允许裸路径)。...
Shadcn UI 组件在 Server Component 报错,因为部分组件用了 Radix UI(Client Component)。确保使用 Shadcn 组件的页面或父组件加了 'use client',或者把组件包裹在 Client Component wrapper 中。 Verce...
React Server Component 中使用 useState 报错,因为 Server Component 不能用 hooks。解决:① 把需要状态的组件拆成 Client Component(加 'use client') ② 父组件保持 Server Component 做数据获取,子...
React Server Component 中使用 useState 报错,因为 Server Component 不能用 hooks。解决:① 把需要状态的组件拆成 Client Component(加 'use client') ② 父组件保持 Server Component 做数据获取,子...
Tailwind v4 升级后样式失效,大版本升级有 breaking changes。检查:① tailwind.config.ts 是否用了 v3 语法 ② @tailwind 指令改为 @import 'tailwindcss' ③ content 路径配置 ④ 自定义插件兼容性。建议看官方迁...
React Server Component 中使用 useState 报错,因为 Server Component 不能用 hooks。解决:① 把需要状态的组件拆成 Client Component(加 'use client') ② 父组件保持 Server Component 做数据获取,子...
Prisma migrate 报 database does not exist,需要先创建数据库。用 npx prisma db push 或手动 createdb。如果是 Vercel Postgres 或 Supabase,确保 DATABASE_URL 指向正确的数据库实例。 Prisma...