如何在使用区域的剃刀组件库中使用 Blazor 服务器端?
How do I use blazor server-side inside a razor component library using areas?
我有一个现有的 .net core 3.0 preview 7 web 应用程序。我的应用程序主要是 razor-pages 组织成 areas 例如。管理员、销售等。如果我将 blazor 组件放在应用程序的根目录下,我就可以成功使用它,但是,如果我将组件移动到 RCL,我就可以访问组件,但它没有响应(单击计数器示例的按钮不会增加计数)。
我希望能够去localhost/Admin/RazorPageContainingBlazorComponent或localhost/Sales/AnotherRazorPageContainingBlazorComponent
我在 chrome 开发工具中收到此错误:
'''
错误:无法完成与服务器的协商:错误
https://localhost:5000/myfeature/_blazor/negotiate 404
'''
我认为这是由映射到 https://localhost:5000/ 的 signalR 集线器引起的,但我不确定如何添加其他 blazor 集线器映射或如何将 blazor.server.js 更改为使用根集线器。
在深入研究 signalR 文档和 blazor.server.js 文件后,我找到了一个解决方案。将下面的代码添加到您的布局文件中可将 signalR 集线器配置为使用绝对路径而不是相对路径。
<script src="~/_framework/blazor.server.js" autostart="false"></script>
<script>
Blazor.start({
configureSignalR: function (builder) {
builder.withUrl("/_blazor");
}
});
</script>
这允许使用区域路由直接在剃刀 class 库中使用剃刀组件。
嘿,我们也遇到了同样的问题。
更好的解决方案是指定
<base href="~/"/>
在 html 的头部,仅引用 <script src="_framework/blazor.server.js"/>
所以
<html>
<head>
<base href="~/"/>
</head>
<body>
<script src="_framework/blazor.server.js"/>
</body>
</html>
我有一个现有的 .net core 3.0 preview 7 web 应用程序。我的应用程序主要是 razor-pages 组织成 areas 例如。管理员、销售等。如果我将 blazor 组件放在应用程序的根目录下,我就可以成功使用它,但是,如果我将组件移动到 RCL,我就可以访问组件,但它没有响应(单击计数器示例的按钮不会增加计数)。
我希望能够去localhost/Admin/RazorPageContainingBlazorComponent或localhost/Sales/AnotherRazorPageContainingBlazorComponent
我在 chrome 开发工具中收到此错误: ''' 错误:无法完成与服务器的协商:错误
https://localhost:5000/myfeature/_blazor/negotiate 404 '''
我认为这是由映射到 https://localhost:5000/ 的 signalR 集线器引起的,但我不确定如何添加其他 blazor 集线器映射或如何将 blazor.server.js 更改为使用根集线器。
在深入研究 signalR 文档和 blazor.server.js 文件后,我找到了一个解决方案。将下面的代码添加到您的布局文件中可将 signalR 集线器配置为使用绝对路径而不是相对路径。
<script src="~/_framework/blazor.server.js" autostart="false"></script>
<script>
Blazor.start({
configureSignalR: function (builder) {
builder.withUrl("/_blazor");
}
});
</script>
这允许使用区域路由直接在剃刀 class 库中使用剃刀组件。
嘿,我们也遇到了同样的问题。
更好的解决方案是指定
<base href="~/"/>
在 html 的头部,仅引用 <script src="_framework/blazor.server.js"/>
所以
<html>
<head>
<base href="~/"/>
</head>
<body>
<script src="_framework/blazor.server.js"/>
</body>
</html>