是否可以在非.NET网站中嵌入Blazor组件?

时间:2019-07-30 14:37:23

标签: blazor

我们想为我们的一位客户开发客户端Blazor组件,使其嵌入到他们网站的页面上。该网站是用Drupal编写的,但实际上我的问题是将Blazor集成到任何非ASP.NET网站中。

https://www.nativoplus.studio/blog/blazor-introduction/中的这张图片似乎表明应该可行,因为没有任何运行时部件依赖于.NET主机:

Blazor architecture diagram showing dev time and runtime elements

据我了解,客户端Blazor组件是通过WASM和JavaScript的组合运行以进行互操作的,因此似乎应该可以在任何网站上嵌入Blazor组件,而不仅仅是用.NET编写的组件?

(可能还可能还需要存在Mono.wasm,我不确定这是否仅用于将C#客户端应用程序编译为wasm,还是在运行该应用程序时也需要这样做?)

从理论上讲这是可能的,还是我遗漏了一些明显的东西使之成为初学者?

如果是这样,谁能举例说明我们需要告诉客户的网站公司将哪些文件添加到站点以及这些文件应位于何处?

2 个答案:

答案 0 :(得分:1)

应该有可能。从这里:https://docs.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-3.0

  

不需要ASP.NET Core Web服务器来托管该应用程序。无服务器部署方案是可能的(例如,从CDN提供服务)。

如果我在Visual Studio中将客户端Blazor项目发布到文件系统,则会得到index.html,css文件夹和包含js和wasm文件的_framework文件夹。

我想应该可以从任何地方为那些人提供服务,但不要尝试。

答案 1 :(得分:1)

是的。这个有可能。使用dotnet publish发布客户端Blazor应用程序后,可以从任何静态文件托管服务提供结果文件。例如,您可以使用发布结果的文件夹中的http-server .来提供结果。

要控制Blazor应用程序在最终HTML应用程序中可见的外观,可以根据需要扩展index.html。 <app>标签将由Blazor应用程序替换。