因写入权限问题无法部署GitHub Pages的技术求助
解决GitHub Pages部署403权限问题(分支构建场景)
检查仓库Pages部署源配置
进入仓库「Settings」→「Pages」,确认「Build and deployment」下的「Source」选择的是「GitHub Actions」。如果之前用的是「Deploy from a branch」,切换后旧分支的权限规则可能引发冲突。修正Workflow权限声明
确保permissions字段写在Workflow最顶层,且包含id-token: write(GitHub Pages OIDC部署必需,只加pages: write不够)。示例配置:name: Deploy to GitHub Pages permissions: contents: read pages: write id-token: write on: push: branches: ["main"] # 替换为你要构建的分支 jobs: deploy: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 with: submodules: true fetch-depth: 0 - name: Setup Pages environment uses: actions/configure-pages@v4 - name: Build site with Jekyll uses: actions/jekyll-build-pages@v1 with: source: ./ destination: ./_site - name: Deploy to Pages id: deployment uses: actions/deploy-pages@v3验证环境分支权限
进入仓库「Settings」→「Environments」,找到「github-pages」环境,检查「Deployment branches」列表是否包含你要构建的分支。如果设置了分支限制,不在列表内的分支会被拒绝部署。重置部署状态重试
去「Actions」面板找到失败的运行记录,点击「Re-run jobs」重试;或者在「Settings」→「Pages」的「Deployment history」里删除旧部署记录,重新触发推送构建。简化分支构建Workflow(针对纯静态分支)
如果只是想直接部署某个分支的静态文件,用简化版Workflow即可:name: Deploy Branch to Pages permissions: contents: read pages: write id-token: write on: push: branches: ["your-branch-name"] # 替换为目标分支名 jobs: deploy: runs-on: ubuntu-latest environment: name: github-pages url: ${{ steps.deploy.outputs.page_url }} steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Pages uses: actions/configure-pages@v4 - name: Upload static files uses: actions/upload-pages-artifact@v3 with: path: ./ - name: Deploy to Pages id: deploy uses: actions/deploy-pages@v3
内容的提问来源于stack exchange,提问作者allie
相关产品推荐
相关产品推荐

