【发布时间】:2019-07-02 02:20:21
【问题描述】:
免责声明
我指的是Blazor托管,而不是server-side!
在运行browser-hosted Blazor 时,有人可以解释一下,为什么我需要在Server.Startup 中放置扩展名app.UseBlazor<Client.Startup>?
如果Blazor 客户端已经托管在net core project -> Client.Startup 为什么我的Server 项目需要添加这个扩展?
client 不应该与服务器解耦吗?
我在这里遗漏了什么?为什么我的Server 项目需要知道Client,因为我的Client 项目已经是独立的了?
我添加了一张图片。
所以你可以在我的图片中看到,如果服务器通过http 与客户端通信,为什么我需要添加扩展?
Blazor 已经在 asp-net-core 中运行,这是 Client 项目,我不对吗?
【问题讨论】:
-
如果您指的是“独立”blazor 或“asp.net 核心托管”,我不肯定。如果是后者,那么您所指的重点是允许服务器托管客户端 blazor 内容。
-
详细说明 - 您有一个不错的客户端托管 blazor 应用程序。这很好,但客户端内容如何交付给您的用户?那需要一台服务器。因此,“asp.net 核心托管”。如果您想自己托管纯客户端版本,可以将其部署到 S3 或其他任何地方。但是很多人希望整个交易都在一个解决方案下——因此是后一种模型。
-
但是
client已经托管在asp-net-coreproject 中,我不正确吗?Client.Startup是托管Blazor的服务器的Startup。 -
不...
Client.Startup是在托管进程中运行的。但是您仍然需要一些东西来实际托管它,不是吗? -
哦,所以基本上
Client.Startup是使您的.NET代码编译为wasm的thing,而不是托管您的结果wasm代码的server。现在看看。当你在你的server项目中使用app.UseBlazor<something>时,你基本上说的是“这个家伙托管了 wasm”。
标签: .net-core client-side blazor