我有一个现有的.net核心3.0预览7 web应用程序。我的应用程序主要是剃须刀页组织成区域。管理、销售等。如果我将blazor组件放在应用程序的根部,我就能够成功地使用它,但是,如果我将组件移动到RCL,我可以访问该组件,但它没有响应(单击反示例的按钮不会增加计数)。
我想去localhost/Admin/RazorPageContainingBlazorComponent或localhost/Sales/AnotherRazorPageContainingBlazorComponent
我在chrome工具中得到了这个错误:‘错误:未能完成与服务器的协商: Error
blazor/negotiate 404‘
我认为这是由于signalR集线器映射到https://localhost:5000/造成的,但我不确定如何添加额外的blazor映射,或者如何将blazor.server.js更改为使用根集线器。
发布于 2019-12-23 09:39:33
嘿,我们也发现我们自己也有同样的问题。更好的解决方案是在html的头部指定<base href="~/"/>,并仅引用<script src="_framework/blazor.server.js"/>。
所以
<html>
<head>
<base href="~/"/>
</head>
<body>
<script src="_framework/blazor.server.js"/>
</body>
</html>发布于 2019-08-06 12:49:54
在深入研究了signalR文档和blazor.server.js文件之后,我找到了一个解决方案。将下面的代码添加到您的布局文件中,将signalR集线器配置为使用绝对路径而不是相对路径。
<script src="~/_framework/blazor.server.js" autostart="false"></script>
<script>
Blazor.start({
configureSignalR: function (builder) {
builder.withUrl("/_blazor");
}
});
</script>这允许使用区域路由直接在剃须刀类库中使用剃须刀组件。
https://stackoverflow.com/questions/57366355
复制相似问题