c# - Blazor 路由 - 导航到静态页面

标签 c# blazor

我正在尝试创建一个用于网站的 Blazor 应用。大多数网站都是静态的,出于客户端性能原因,我希望这部分由静态 HTML 文件提供。该网站的一些页面将由 Blazor 应用程序呈现。对此进行原型(prototype)设计时,我遇到了一个问题:当从 Blazor 部分导航回网站的静态部分时,我得到“错误:System.InvalidOperationException:'Router' 找不到任何带有 '/index.html' 路由的组件”。 html'。”

index.html 的链接在包含应用程序的页面的正文标记中,但在应用程序标记之外,Blazor 不会注意到它。我知道问题的原因是路由器找不到路由的组件,但为什么 Blazor 试图找到组件而不是让浏览器导航到非 Blazor 页面?这个链接应该由浏览器处理,而不是 Blazor,我会想?

最佳答案

startup.cs您的网站,更改 app.UseBlazor()声明:

app.Map("/bzr", child => { child.UseBlazor<Blazor.Program>(); });

并且在 index.htmlwwwroot ,将基本 href 更改为:

<base href="/bzr/" />

现在 /bzr 之外的任何东西文件夹将仅作为常规网站使用。

关于c# - Blazor 路由 - 导航到静态页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54135277/

相关文章:

c# - Azure 服务总线 - 留言

c# - 如何创建模块化 Blazor Web 应用

visual-studio - 如何从 Visual Studio 2019 部署 Blazor 服务器托管的应用程序

c# - WebDav 命名空间架构

c# - 无法通过上下文(Entity Framework Core)将 unicode(表情符号)写入 SQL Server 表

c# - 我只看到项目模板 blazorserver,为什么我看不到项目模板 blazor、blazorhosted、blazorlib、blazorserverside?

c# - Blazor 动态生成表行

authentication - Blazor Server Signalr 中心缺少用户声明

c# - 为什么多维数组的枚举值不等于自身?

c# - EF Linq to Entities 在实体集上调用 ToList() 生成包含多个左外连接的 SQL 命令