如何使用GitHub操作在GitHub页面上部署Blazor WebAssembly

2020-07-01 02:32:37

我最近花了相当多的时间和布莱泽一起玩。其中一个好处是,使用WebAssembly,您可以生成一个静态网站,并将其免费托管在GitHub页面上。最重要的是,整个过程可以通过GitHub操作实现自动化,因此您不必担心。

这不是一个复杂的过程,总而言之只需要几个步骤。只有一个警告:如果您的存储库是“标准”用户或组织存储库,则只能从主分支部署到页面。

用户和组织站点的默认发布源是主站和分站。如果您的用户或组织站点的存储库有一个主站点分支,则您的站点将自动从该分支发布。您不能为用户或组织网站选择不同的发布源。

否则,如果您的存储库属于某个项目,您可以将其配置为从其他分支部署:

项目站点的默认发布源是较高页面的分支。如果您的项目站点的存储库有一个超长页面的分支,则您的站点将自动从该分支发布。

项目站点也可以从MASTER MASTER分支或MASTER MASTER分支上的/Docs文件夹发布。

那么我们要怎么做才能看到我们漂亮的网站呢?它的核心都在这里:

名称:GH-Pages:[Push]作业:Build:Run-On:Ubuntu-最新步骤:-用法:Actions/Checkout@v2-Name:Setup.NET核心用法:Actions/Setup-dotnet@v1 with:dotnet-version:3.1.301-name:使用dotnet发布运行:dotnet Publish--配置发布--输出build-name:Deploy to Github Pages用法:JamesIves/github-pages-deploy-action@releases/v3 with:Access_Token:${Secrets.ACCESS_。BRANCH:MASTER#操作应该部署到的分支。Folder:build/wwwroot#操作应该部署的文件夹。Single_Commit:TRUE

也没有什么东西可以添加到应用程序代码中。首先,将此javascript片段添加到index.html:

<;!--启动GitHub页面的单页应用-->;<;script type=";text/javascript";>;//GitHub页面单页应用//https://github.com/rafrex/spa-github-pages//版权所有(C)2016年Rafael Pedicini,根据麻省理工学院的许可//--//此脚本检查查询字符串中是否存在重定向//并将其转换回正确的URL并将其添加到//浏览器';使用window.history.replaceState(.)的历史记录,//这不会导致浏览器尝试加载新的url。//在此文件中进一步加载单页应用程序时,//正确的URL将在浏览器的历史记录中等待//单页应用程序进行相应的路由。(Function(L){if(l.search){var q={};l.search.slice(1).split(';&;';).forEach(function(V){var a=v.Split(';=';);q[a[0]]=a.slice(1).join(';=';).replace(/~and~/g,';&;';);});如果(q.p!==未定义){window.History y.replaceState(null,null,l.pathname.Slice(0,-1)+(q.p||';';';+q.q):';';)+l.hash);}(window.location)<;/script>;<;!--end。

正如您从注释中看到的,此代码帮助处理URL和重定向。

因此,如果名称为BlazorOnGitHubPages,最终的网址将类似于https://mizrael.github.io/BlazorOnGitHubPages/(恰好就是我正在使用的网址,请随意尝试)。

下一步是在/wwwroot文件夹中添加一个404.html页面和一个空的.nojekyll文件。GitHub页面是使用Jekyll构建的,它不构建任何以_开头的内容。但是,Blazor会在/wwwroot中生成一个_framework子文件夹,正如您可以想象的那样,它非常重要。