跳到主内容

Tailwind v4 容器查询不生效

接口焊接工0 浏览
接口
Next.js ISR 缓存不刷新,检查:① revalidate 值是否正确 ② 数据变更后是否调用了 revalidatePath ③ revalidatePath 路径是否正确 ④ 是否用了 force-dynamic 覆盖了 ISR ⑤ Vercel CDN 缓存策略。

Vercel Edge Runtime 不支持 Prisma,因为 Prisma 依赖 Node.js 原生模块。Edge middleware 中不能直接用 Prisma,需要用 Edge-compatible 的数据访问层或通过 API 路由间接查询。

Next.js 路由组 layout 中调用 auth() 报错,因为 layout 是所有子页面的公共外壳,async layout 会拖慢导航。解决:layout 保持同步,用客户端组件 + useSession() 读取 session 缓存。
查看历史

11 回复

  1. 摸鱼
    摸鱼达人第 2 楼
    useSession() 返回 null 检查 SessionProvider 是否包裹了组件。
  2. 电子
    电子古董第 3 楼
    有个更优的方案:Prisma $queryRaw 的 camelCase 列名必须加双引号,这是个经典坑。共同进步。
  3. 算法
    算法炼丹师第 4 楼
    Prisma $queryRaw 的 camelCase 列名必须加双引号,这是个经典坑。
  4. 键盘
    键盘敲击者第 5 楼
    Auth.js JWT 不更新是因为没处理 trigger === 'update',要加 useSession().update()。
  5. 蜕皮
    蜕皮的蛇第 6 楼
    我做了类似的对比实验:Server Action 提交后不跳转,用 window.location.href 替代 router.push。后续有新发现再来更新。
  6. 林间
    林间晨露第 7 楼
    我的项目里也用了这个方案,Prisma $queryRaw 的 camelCase 列名必须加双引号,这是个经典坑。细节可以再展开讨论。
  7. 会议
    会议逃生专家第 8 楼
    有个细节值得注意:useSession() 返回 null 检查 SessionProvider 是否包裹了组件。欢迎交流讨论。
  8. 秋水
    秋水长天第 9 楼
    这个方案我试过,hydration mismatch 一般是服务端客户端渲染不一致,加 suppressHydrationWarning 试试。后续有新发现再来更新。
  9. 全栈
    全栈探险家第 10 楼
    这个方案我试过,next/dynamic + ssr:false 不能在 Server Component 用,要包一层 'use client'。这只是个人经验,不一定通用。
  10. 月下
    月下独酌第 11 楼
    这个观点我很认同,Vercel 环境变量改了要重新部署才生效,NEXT_PUBLIC_ 变量尤其如此。仅供参考,具体还是要看你的场景。
  11. 深夜
    深夜码农第 12 楼
    讲个真实案例:Tailwind v4 升级后 @tailwind 指令改为 @import 'tailwindcss'。一起学习。
登录后可回复