我正在尝试为我的Blazor项目建立一个Github Pages网站。即使有了全新的blazor项目,我也没有成功。按照人们在this question上给出的指示,我在未修改的新项目中始终遇到404错误。
您可以在https://billybillyjim.github.io处找到我当前的尝试,副本在https://github.com/billybillyjim/billybillyjim.github.io处
我当前的流程是这样:
在Visual Studio 2019预览版(3.0.100-preview6-012264)中创建全新的客户端Blazor页面。
转到Github Pages并创建一个名为billybillyjim.github.io
使用Desktop Github应用将存储库克隆到本地文件夹。
使用VS2019的“生成”菜单中的“发布”选项,我选择一个文件夹配置文件。
成功构建后,我将创建的文件从发布的文件夹移到repo文件夹。
我提交并推送到github。
我添加一个.nojekyll文件,并将SPA javascript脚本添加到新的404.html和index.html中。
尝试加载页面会给我一个404。 “无法加载资源:服务器响应状态为404()” 此错误适用于每个dll文件。
我尝试过的事情:
将所有内容放入文件夹中,更改index.html中的基本href,并将SPA脚本segmentCount设置为1。
删除下划线并更新index和两个blazor.js文件中的文件引用。
按照the instructions here.末尾的说明将index.html中的href更改为回购名称。
我已将自己的设置与https://github.com/blazor-demo/blazor-demo.github.io上的示例页面进行了比较,它的设置与我的非常相似,但是它已经使用了一年,并且似乎使用了非常不同的dll集和不同的blazor.js。 / p>
我是Web开发的新手,所以我很可能完全误解了一些简单的东西。
答案 0 :(得分:1)
让它为我工作的两个关键因素是:
您需要执行此操作,因为Blazor应用程序中的文件被引用到站点的根目录,并且GitHub Pages站点将项目名称作为路径的第一部分。
在index.html中进行更改:
<base href="/" />
至:
<base href="/YOURPROJECTNAME/" />
这使浏览器将您的项目名称添加到它获取的所有文件的路径的开头。
如果要将Blazor应用程序嵌套在另一个子目录中存储,则还需要将其包含在基本路径中。
您可以通过查看浏览器的开发工具并检查其所击中的任何404路径来判断是否有效。
我必须:
index.html
和framework\blazor.webassembly.js
中重命名对_framework和_bin的引用我在应用程序的某些PowerShell后发布中结合了以下两个步骤:(请注意,您需要将<base>
标签设置为项目的正确值)
(Get-Content .\public\blazor-sample\index.html) `
-replace '<base href="/" />', '<base href="/lifti/blazor-sample/" />' `
-replace '_framework', 'framework' |
Out-File .\public\blazor-sample\index.html
Rename-Item .\public\blazor-sample\_framework "framework"
Rename-Item .\public\blazor-sample\framework\_bin "bin"
(Get-Content .\public\blazor-sample\framework\blazor.webassembly.js) `
-replace '_framework', 'framework' `
-replace '_bin', 'bin' |
Out-File .\public\blazor-sample\framework\blazor.webassembly.js
答案 1 :(得分:0)
在Git页面上托管Blazor应用很痛苦。我尝试了多种方法,但以某种方式导致错误。但是,如果您正在寻找Blazor应用程序的免费有限部署选项,则可以尝试Firebase。 您可以参阅我的文章https://ankitsharmablogs.com/hosting-a-blazor-application-on-firebase/,以获得有关在Firebase上托管Blazor应用程序的逐步指南。
答案 2 :(得分:0)
我终于明白了!我不知道以前怎么没注意到,但是我的仓库实际上并没有接受我的bin文件夹,其中包含了所有应用程序的dll。看来(也许是默认设置?)Github页面会忽略bin文件夹。首先,我尝试编辑仓库的gitignore文件,但似乎没有更新以显示文件,因此我不得不使用git add -f framework / bin /手动添加文件,然后提交并推送。现在该网站正在运行!