如何将Blazor应用程序作为插件/嵌入到另一个域中? [英] How to load a Blazor App as a plugin/embed in another Domain?

查看:22
本文介绍了如何将Blazor应用程序作为插件/嵌入到另一个域中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我花了很多时间让Blazor插件正常工作,我的应用程序被用作另一个域的网页的插件/嵌入。这是有效的,但是这个方法有一些严重的缺点,我希望有人找到了更好的方法。

为了说明我在做什么,我的网站在右边,另一个网站需要调用我的插件的代码在左边。

我当前的方法:

  1. 使用提前编译(AOT)编译我的应用程序,详细说明here。如果没有这个,Blazor会尝试加载所有的DLL 从客户端域,而不是从我的服务器。
  2. 将";autostart=false";和";Blazor.start({.";code)添加到客户端域需要在其一侧编写的代码。这甚至是b/c所需要的。 使用AOT,Blazor仍然尝试从 客户端域。它是硬连线的,请看这个issue。问题是 关闭b/c他们说JS初始值设定项已修复,但即使使用AOT,JS初始值设定项仍默认为托管客户端域。所以它并没有真正修好。

问题有:

  1. AOT仅适用于发布版本。我需要为调试做开发版本。微软表示,他们正在处理这件事,所以很可能不是拦截器。
  2. 客户端上的Blazor.start代码看起来不好。
  3. Blazor的大部分调用仍然默认使用托管客户端域,比如上面#2中的JS初始化器。即使一个空插件正在工作,我怀疑这个问题也会阻止创建更复杂的应用程序。这是个大问题,我希望有人能帮上忙。在另一个域中嵌入Blazor应用是可以的,但可能只针对非常基本的Blazor页面,并不复杂。

一种可能的解决方案是微软计划绕过防火墙阻止Blazor对其DLL的调用,详细内容here。这是如此复杂和高维护,我担心它会造成更多的问题,尽管我计划不管怎样都要试一试。

如有任何改进/替代方案,我们将不胜感激!谢谢!

编辑:以上大多数问题的潜在解决方案是更改Blazor的FETCH函数使用的默认原点。这并没有真正回答此问题,因此我创建了第二个问题来涵盖此问题here

推荐答案

此人博客中可能有适合您情况的内容。我自己也在着手这项任务。

这篇关于如何将Blazor应用程序作为插件/嵌入到另一个域中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆