Blazor WebAssembly Server项目如何引用客户端索引?

时间:2020-06-12 13:44:50

标签: blazor blazor-client-side blazor-webassembly

使用模板:启用了ASP.NET Core托管的Blazor WebAssembly应用

它创建项目:

  • BlazorApp1.Client
  • BlazorApp1.Server

我可以看到服务器具有对客户端的项目引用,但是我无法确定允许服务器显示客户端的代码是什么?

服务器如何知道客户端索引文件在另一个程序集中?

客户端代码是否托管在服务器项目的同一端口上?

我有点想弄清楚这个问题。

1 个答案:

答案 0 :(得分:2)

项目参考就在这里,以便MsBuild(VS)将客户端文件复制到bin目录。

然后,服务器具有一个特殊的中间件组件来为客户端提供服务。以下几行都是关于提供静态文件的:

app.UseBlazorFrameworkFiles();
app.UseStaticFiles();

服务器实际上并未链接或引用客户端中的任何代码。

客户端代码是否托管在服务器项目的同一端口上?

是的,只是为了方便。您可以将客户端托管在其他地方(但同时还要考虑CORS设置)。

我无法确定允许服务器显示客户端的代码是什么?

这种情况发生在UseEndPoints的最后一行:

endpoints.MapControllers();                  // handle /api
endpoints.MapFallbackToFile("index.html");   // everything else