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

升级NextJS至13.4.19后Express服务器路由404错误求助

NextJS 13.4.19 自定义Express服务器无法渲染pages目录路由的解决办法

1. 修复代码语法错误

你提供的server.js代码存在明显语法错误,这是导致路由无法注册的直接原因:

// 错误代码:"/dashboard"后使用了错误的闭合括号]
app.get("/dashboard"], (req, res) => {
    return nextApp.render(req, res, "/");
  });

修正为:

app.get("/dashboard", (req, res) => {
    return nextApp.render(req, res, "/");
  });

2. 强制启用Pages Router模式

NextJS 13.4默认启用App Router,即使存在pages目录也可能出现路由解析混淆。在next.config.js中明确禁用App Router,确保优先使用Pages Router:

/** @type {import('next').NextConfig} */
const nextConfig = {
  experimental: {
    appDir: false,
  },
};

module.exports = nextConfig;

3. 确认Next实例的根目录配置

初始化NextApp时,必须指定正确的项目根目录,避免路由解析时找不到pages文件夹:

const nextApp = next({
  dev: process.env.NODE_ENV !== 'production',
  dir: __dirname, // 明确指向项目根目录
});

4. 清理缓存并重建项目

升级NextJS后,旧缓存可能引发路由异常,执行以下操作:

  • 删除项目根目录下的.next文件夹
  • 删除node_modules并重新安装依赖:rm -rf node_modules && npm install
  • 重启开发服务器或重新构建生产包

5. 检查src目录配置

如果你的next.config.js中配置了srcDir: 'src',NextJS会优先从src目录查找路由,导致根目录的pages文件夹无法被识别。你可以:

  • 移除srcDir配置项
  • 或把根目录的pages文件夹移动到src目录下,保持src/pages结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 09:13:14