正确地 publishing/deploying 一个 blazor 项目到 github 页

Properly publishing/deploying a blazor project to github pages

首先我会说我在这里的工作肯定比我的薪水高一点。我会尽力描述这个问题并使其最容易回答。

我在 Visual Studio 中创建了一个 Blazor 项目,它连接到 GitHub 存储库 here in the gh-pages branch. After reading Blazor's hosting and deploying guide here,我在 Visual Studio 中发布了该项目并复制了文件在 /bin/Release/netstandard2.0/publish/ChargeLearning/dist 文件夹中到存储库的根目录,生成具有以下文件结构的存储库:

ChargeLearning
    ChargeLearning
    _content
    _framework
    css
    sample-data
    ChargeLearning.sln
    index.html

在这一点上,我认为我已经 neck-deep 处于不良做法中。

无论如何,尝试加载 index.html 会导致 html header 中的大多数文件在控制台中出现 404 错误,例如 bootstrap(因为 blazor警告部署指南)。

所以我尽可能按照那里的说明,尝试为指南中链接的 gh-pages 实施 this 单页应用程序 (SPA) 修复。

我现在将 404.html 文件添加到 ChargeLearning 存储库,当我加载页面时它只显示一个 404 错误,用于 blazor.webassembly.js 文件。

然后我将来自 SPA 修复的重定向脚本添加到我的 willthamic.github.io repository which when I open the direct urlblazor.webassembly.js 文件似乎重定向正确但 github 显示我的主页和我现在意识到它已被严重损坏,现在无法加载图像。

我觉得我在这里做错了很多事情,这使得很难立即隔离和解决一个问题。

如果您有关于如何正确部署这个的具体建议,或者关于如何更正确地做我想做的事情的小事情,我将不胜感激。

提前致谢。

blazor.webassembly.js 文件存储在以下划线 (_framework) 开头的目录中,github 的 jekyll 在部署网站时会忽略该目录。在 将名为 .nojekyll 的文件添加到存储库的根目录后 仍然出现 404 错误,这让我困惑了很长时间。后来发现我需要更改另一个文件才能重建网站,最终解决了这个问题。

我仍然觉得我正在做很多可能不好的事情,但那是以后的事了。如果有人对此有任何建议,我将为此悬赏。

查看您的 gh-pages 分支的当前状态,我猜您将发布目录中的文件与解决方案中的源文件混在一起了?如果是这样,您只需要清除 gh-pages 分支中的源文件,这样就只存在您从发布目录复制的文件。

除此之外,您现在所拥有的看起来是正确的。