C# 为什么我的blazor页面会导致github页面出现404错误?

C# 为什么我的blazor页面会导致github页面出现404错误?,c#,http-status-code-404,github-pages,blazor,C#,Http Status Code 404,Github Pages,Blazor,我正试图为我的Blazor项目建立一个Github页面站点。即使有一个全新的blazor项目,我也没有成功。我总是按照人们给出的指示,在未修改的新项目中遇到404个错误 您可以在找到我当前的尝试,复制程序在 我目前的流程是: 在Visual Studio 2019预览(3.0.100-preview6-012264)中创建一个全新的客户端Blazor页面 转到Github页面,创建一个名为billybillyjim.Github.io的回购协议 使用桌面Github应用程序将repo克隆到本地文

我正试图为我的Blazor项目建立一个Github页面站点。即使有一个全新的blazor项目,我也没有成功。我总是按照人们给出的指示,在未修改的新项目中遇到404个错误

您可以在找到我当前的尝试,复制程序在

我目前的流程是:

  • 在Visual Studio 2019预览(3.0.100-preview6-012264)中创建一个全新的客户端Blazor页面

  • 转到Github页面,创建一个名为billybillyjim.Github.io的回购协议

  • 使用桌面Github应用程序将repo克隆到本地文件夹

  • 使用VS2019的Build菜单中的Publish选项,我选择了一个文件夹配置文件

  • 成功构建后,我将从已发布文件夹创建的文件移动到repo文件夹

  • 我提交并推送到github

  • 我添加了一个.nojekyll文件,并将SPA javascript脚本添加到新的404.html和index.html中

  • 尝试加载页面会给我一个404。 “加载资源失败:服务器响应状态为404()” 此错误适用于每个dll文件

    我尝试过的事情:

    将所有内容放在文件夹中,更改index.html中的基本href,并将SPA脚本segmentCount设置为1

    删除下划线并更新索引和两个blazor.js文件中的文件引用

    将index.html中的href更改为repo名称,如本节末尾所述

    我将我的设置与示例页面进行了比较,它的设置与我的非常相似,但它已经有一年的历史了,似乎使用了一组非常不同的DLL和一个不同的blazor.js


    我对web开发完全陌生,所以我认为我很可能完全误解了一些简单的事情。

    在Git页面上托管Blazor应用程序是一件痛苦的事情。我尝试了多种方法,但不知怎么的结果是错误的。但是,如果您正在寻找Blazor应用程序的免费有限部署选项,那么您可以尝试Firebase。
    您可以参考我的文章,了解在Firebase上托管Blazor应用程序的分步指南。

    我终于找到了答案!我不知道我以前怎么没有注意到,但我的回购协议实际上并没有接受我的bin文件夹,它包含了应用程序的所有DLL。所以Github页面似乎(默认情况下?)忽略了bin文件夹。首先,我尝试编辑我的repo的gitignore文件,但它似乎没有更新以显示文件,因此我必须使用git add-f framework/bin/手动添加文件,然后提交并推送。现在网站正在运行

    让它对我起作用的两个关键因素是:

    • 在blazor索引页中提供基本路径
    • 从文件夹(例如_framework和_bin文件夹)中删除前导下划线
    固定基本路径 您需要这样做,因为Blazor应用程序中的文件引用到站点的根目录,并且GitHub Pages站点将您的项目名称作为路径的第一部分

    在index.html更改中:
    致:

    这会使浏览器将您的项目名称添加到它获取的任何文件的路径的开头

    如果要将Blazor应用程序嵌套在另一个子目录中,则还需要将其包含在基本路径中

    您可以通过查看浏览器的开发工具并检查它所击中的任何404的路径来判断这是否起作用

    修正前导下划线 我必须:

    • 从文件夹中删除下划线
    • index.html
      framework\blazor.webassembly.js
    自动化 我使用了一些PowerShell发布后的应用程序来结合这两个步骤:(请注意,您需要将
    标记设置为项目的正确值)

    (获取内容。\public\blazor sample\index.html)`
    -替换“”,“”`
    -替换“_framework”,“framework”|
    输出文件。\public\blazor sample\index.html
    重命名项目。\public\blazor sample\\框架“framework”
    重命名项目。\public\blazor sample\framework\\u bin“bin”
    (获取内容。\public\blazor sample\framework\blazor.webassembly.js)`
    -替换“_framework”,“framework”`
    -替换“\u bin”,“bin”|
    输出文件。\public\blazor sample\framework\blazor.webassembly.js