我正在尝试创建一个用于网站的 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.html
在wwwroot
,将基本 href 更改为:
<base href="/bzr/" />
现在 /bzr
之外的任何东西文件夹将仅作为常规网站使用。
关于c# - Blazor 路由 - 导航到静态页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54135277/