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

通过GitHub Actions+Netlify CLI部署Next.js网站遇404问题求助

解决Netlify CLI部署Next.js出现「Page Not Found」的问题

核心原因

你手动在GitHub Actions中执行npm run build后直接上传.next目录,导致@netlify/plugin-nextjs未被触发运行。这个插件是Netlify适配Next.js路由、生成必要服务端函数的关键,缺少它的处理,Netlify无法正确解析Next.js的页面路由,自然会返回404。

具体修复步骤

1. 修改GitHub Actions配置(production.yml)

移除单独的Build步骤,让Netlify CLI全权处理构建和部署,确保插件能正常运行。修改后的配置如下:

name: Build & Deploy to Netlify
on:
  push:
    branches:
      - master
  pull_request:
    types: [labeled, opened, synchronize, reopened]
jobs:
  build-deploy:
    if: "!contains(github.event.head_commit.message, 'ci skip')"
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Use Node.js version from package.json
        uses: actions/setup-node@v3
        with:
          node-version-file: 'package.json'
      - name: Npm install
        run: npm ci
      - name: Deploy to Netlify
        uses: netlify/actions/cli@master
        with:
          args: deploy --prod --build
        env:
          NETLIFY_SITE_ID: ${{ secrets.NETLIFY_TEST_SITE_ID }}
          NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}

说明:--build参数会触发netlify.toml中定义的构建命令和插件,无需手动指定--dir,Netlify会自动识别publish目录。

2. 保留netlify.toml的插件配置

不要移除@netlify/plugin-nextjs,它是Next.js在Netlify上正常运行的核心依赖,你的原配置是正确的:

[build]
command = "npm run build"
publish = ".next"

[[plugins]]
package = "@netlify/plugin-nextjs"

3. 确认Netlify站点的UI构建设置已完全禁用

进入Netlify站点的Settings > Build & deploy > Continuous deployment:

  • 将Build command留空
  • 将Publish directory留空
    确保Netlify不会用UI端的配置覆盖CLI和netlify.toml的设置。

4. 验证部署结果

重新触发GitHub Actions部署后,查看Netlify的部署日志,应该能看到@netlify/plugin-nextjs的运行日志,同时在站点的Functions页面会生成_next开头的函数。此时访问站点,页面应该能正常加载。


内容的提问来源于stack exchange,提问作者Florian LAUER

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 07:27:17