Next.js dev server 用局域网 IP 打开会白屏

dev · 最后更新 2026年9月12日

现象

pnpm dev 起的站点,从 localhost 访问正常。换成本机局域网 IP 打开同一页面,HTML 能加载,但页面白屏,或者只渲染出 sidebar 框架、不进 useEffect、没有数据。

排查线索

dev server 日志里有类似这样的告警,说跨域访问 Next.js dev 资源被默认阻断。

根因

Next.js 15 起默认对非 localhost 的 origin 阻断 _next/*,涵盖 chunks、字体、HMR 和 RSC stream。HTML 拿得到但 client bundle 拉不到,React 不水合,useEffect 不跑,看起来就是布局渲染了但功能全死。

修复

next.config.ts 里加 allowedDevOrigins,并且必须重启 dev server,因为 next.config 的改动不热重载。

不要硬编码单个 IP,Wi-Fi 的 DHCP 经常换地址,双网卡机器更乱。直接把 RFC1918 全部私网段用 glob 写进去,再留一个环境变量做覆盖,只有 mDNS 域名或公网域名才需要走覆盖。

nextjs踩坑