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

Next.js部署后所有路由返回相同内容问题求助

问题排查与解决方案

你的问题是典型的路由路径未正确传递或Next.js配置不匹配部署环境导致的,以下是针对性排查步骤:

1. 检查AWS基础设施的路径转发配置

  • 若使用ALB(应用负载均衡):确保目标组的路径转发规则是保留原始请求路径,没有将所有请求重写为/。同时确认"转发请求到目标组"时,未修改请求的URI路径。
  • 若使用CloudFront:检查行为设置中的"路径模式"是否匹配你的路由,且"转发到原点"时未修改请求路径,确保原点域名正确指向你的容器服务(ECS/EKS)。

2. 验证Next.js的basePath配置

如果你的应用部署在AWS的子域名或子路径下(比如https://your-domain.com/next-app),必须在next.config.js中添加:

module.exports = {
  basePath: '/next-app', // 替换为你的实际部署子路径
}

未设置basePath会导致静态资源(JS/CSS)和API路由请求根路径,触发Next.js的 fallback 路由逻辑,最终返回首页内容。

3. 检查Docker构建与启动流程

  • 确认start.sh中的启动命令正确:
    • 若使用默认构建:启动命令应为npx next start -p 3000(指定端口,默认3000)
    • 若使用独立构建:需先在next.config.js中开启output: 'standalone',然后启动命令为node .next/standalone/server.js
  • 你的Dockerfile中在容器内执行了next build,可在start.sh中添加一行验证:echo "Checking build artifacts..." && ls -la /usr/src/app/.next,确保.next文件夹存在且包含构建产物。

4. 确认Next.js路由规则符合约定

  • 页面路由:确保所有非首页路由都放在pages目录下(Pages Router)或app目录下(App Router),符合Next.js的约定式路由规则。
  • API路由:确认API接口都放在pages/api目录下(Pages Router),或遵循App Router的API路由规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:51:06