Great! 我已把构建上传到 gh-pagesmain/docs,但 Pages 仍返回 404,我将把完整的部署流程、我们已做的步骤和常见排查要点梳理清楚给你。## 部署流程梳理(GitHub Pages)✅

下面按 准备 → 构建 → 部署 → 验证 → 排错 的顺序梳理,包含常用命令和注意事项。


1) 准备项目 🔧

  • 确保项目能输出静态文件(SPA 或静态站点):例如 Vite 项目执行 npm run build 会产出 dist(或 build/)。
  • 如果是子路径部署(仓库名作为路径),在 vite.config.js 设置:
    base: process.env.NODE_ENV === 'production' ? '/<repo-name>/' : '/'
    
    这样构建后的所有资源引用都会带上 /repo-name/ 前缀,适合 GitHub Pages 的 https://username.github.io/repo-name/

2) 构建(本地)📦

  • 构建命令(Vite):
    npm run build
    # 结果在 dist/
    
  • 本地预览(调试路径问题):
    • 相对路径预览:
      npx vite build --base ./
      npx serve dist
      
    • 或启动一个带子路径的临时服务器(匹配 /repo-name 前缀):
      // 简易 express server
      app.use('/repo-name', express.static('dist'))
      app.get('/repo-name/*', (req, res) => res.sendFile(path.resolve('dist/index.html')))
      

3) 部署方式(选一种)🚀

A. 直接发布到 gh-pages 分支(常见、可自动化)

  • 手动(本地):
    git checkout --orphan gh-pages
    git --work-tree=dist add --all
    git --work-tree=dist commit -m "Deploy to gh-pages"
    git push -f origin gh-pages
    git checkout main
    
  • 或使用 gh-pages 包(自动把 build 推到 gh-pages):
    npm i -D gh-pages
    # package.json scripts:
    "predeploy": "npm run build",
    "deploy": "gh-pages -d dist"
    npm run deploy
    

B. 使用 main/docs(简单、源码与发布在同一分支)

  • 修改 vite.config.js(可保留 base 为 /repo-name/),然后:
    # 复制构建产物到 docs/
    rm -rf docs
    cp -r dist docs
    git add docs
    git commit -m "Deploy: copy dist to docs"
    git push origin main
    
  • 在 GitHub → Settings → Pages 里把 Source 设为 main / docs

C. 使用 GitHub Actions 自动部署(推荐:CI 自动化 + 无需 PAT)

  • 增加 workflow(示例我们已添加):
    • Build:npm cinpm run build
    • 发布:使用 peaceiris/actions-gh-pagesJamesIves/action-gh-pages
    • 使用 GITHUB_TOKEN 自动完成部署(不用手动传 PAT)

4) 验证(部署完成后)🔎

  • 等待几分钟后访问:
    https://<username>.github.io/<repo-name>/
  • 检查 GitHub 上:
    • Repository → Settings → Pages(确认 Source 已设置并查看发布 URL)
    • Repository → Actions(查看 workflow 是否成功)
  • 也可以请求 HTTP 头或页面:
    curl -I https://username.github.io/repo-name/
    

5) 常见问题与解决方法 🛠️

  • 404(页面或资源找不到)

    • 原因一:资源路径错误(index.html 引用了 /repo-name/assets/... 但你用根目录 serve)
      • 本地调试:要么把 dist 挂在 /repo-name,要么用 --base ./ 重新构建用于本地预览。
    • 原因二:Pages 仍在构建中或 GitHub 出现短暂故障 → 等 1–5 分钟再试,或查看 Actions logs。
    • 原因三:Pages Source 没设置为 gh-pagesmain / docs → 去 Settings 切换。
  • SPA 使用 History 路由出现 404

    • 推荐用 Hash 模式(最简单),或在部署目录提供 404.html 将所有请求重定向到 index.html(或使用 404 fallback 方案)。
  • 推送失败(网络/权限)

    • 使用 GITHUB_TOKEN 的 Actions 自动部署无需额外 PAT。手动推送则需确认网络与凭证(SSH 或 HTTPS + PAT)。

6) 我们当前的状态(针对你仓库)📋

  • 我已:
    • 更新 vite.config.js 设置 base: '/chat-vue/'
    • 添加 GitHub Actions workflow(构建并用 peaceiris/actions-gh-pages 发布到 Pages)
    • 手动将 dist 发布到 gh-pages(本地 commit)并且 push 成功
    • 把 dist 也复制到 docs 并 push 到 main
  • 但站点目前返回 404(可能在部署生效中或 GitHub 短时错误),接下来需要:检查 Pages source(Settings → Pages) 或 等 Actions 完成 / 我帮助检查 Actions 日志。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐