2023年Blazor应用部署GitHub Pages遇404错误求助
Blazor项目部署GitHub Pages持续404问题
我一整天都在尝试把Blazor项目部署到GitHub Pages,但不管怎么弄都出404错误:
我试过两种方案:一是用下面的GitHub Action配置自动部署,二是手动把wwwroot目录复制到仓库根目录,但都没解决问题。
我的GitHub Action配置代码
name: Deploy to GitHub Pages # 触发规则:推送到master分支或针对master分支的PR触发工作流 on: push: branches: - master pull_request: branches: - master jobs: deploy-to-github-pages: runs-on: ubuntu-latest steps: # 拉取仓库代码 - uses: actions/checkout@v2 # 安装.NET Core SDK 7.0.x - name: Setup .NET Core SDK uses: actions/setup-dotnet@v1 with: dotnet-version: 7.0.x # 安装WASM构建工具 - name: Install .NET WASM Build Tools run: dotnet workload install wasm-tools # 发布Blazor项目到dist/Web目录 - name: Publish .NET Core Project run: dotnet publish Portfolio/Portfolio.csproj -c:Release -p:GHPages=true -o dist/Web --nologo # 修改index.html的base标签适配GitHub Pages子目录 - name: Change base-tag in index.html from / to WebPortfolio run: sed -i 's/<base href=\"\/\" \/>/<base href=\"\/WebPortfolio\/\" \/>/g' release/wwwroot/index.html # 部署静态文件到gh-pages分支 - name: Commit wwwroot to GitHub Pages uses: JamesIves/github-pages-deploy-action@3.7.1 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} BRANCH: gh-pages FOLDER: dist/Web/wwwroot
几个关键排查点
- 路径不匹配:修改base标签的脚本里,目标文件路径是
release/wwwroot/index.html,但项目实际发布到了dist/Web目录,应该改成dist/Web/wwwroot/index.html,这会导致base标签根本没被正确修改,页面加载资源时路径错误。 - GitHub Pages源设置:去仓库的GitHub Pages配置页面,确认部署源选的是
gh-pages分支,且目录设为根目录(因为我们部署的是wwwroot下的所有内容)。 - base标签值正确性:
WebPortfolio必须是你的GitHub仓库名称,如果是个人站点仓库(比如xxx.github.io),base标签应该设为/,不需要子目录。 - 发布结果验证:检查
dotnet publish命令是否真的把静态文件生成到了dist/Web/wwwroot目录,确保里面有index.html、css、js这些必要文件。
内容的提问来源于stack exchange,提问作者Carlos Valeriano
相关产品推荐
相关产品推荐

