Blazor:实现 404 未找到页面
Blazor: Implementing 404 not found page
我想在我的应用程序内部实现一个页面,该页面在 blazor 路由器找不到匹配的路由时显示。目前,所有请求都路由到 index.html
,因此我无法像往常一样通过 iis 处理错误。如果我输入无效路由,我将看到一个空白页面(实际上是 index.html
)并收到控制台错误:
'Router' cannot find any component with a route for '/some/Nonexistent/Route'.
似乎我应该能够处理这个问题,因为 blazor 路由器能够识别出没有定义与请求的路由匹配的路由,但是到目前为止我还找不到任何关于此的文档。
我该如何实施?有没有办法挂接到 blazor 路由器并将所有未找到的路由定向到预定义的错误路由?
我看到 https://github.com/aspnet/AspNetCore/issues/5489 列出了 404 处理程序的问题,但我不确定这是否比我想要做的更强大和生产就绪
试试这个:
App.cshtml
<Router AppAssembly=typeof(Program).Assembly FallbackComponent="typeof(Error404)" >
创建一个名为 Error404.cshtml
的组件
注意:这只是我从挖掘路由器中收集到的猜测 class。参见 https://github.com/aspnet/AspNetCore/blob/343208331d9ebbb3a67880133f4139bee2cb1c71/src/Components/src/Microsoft.AspNetCore.Components/Routing/Router.cs
请让我知道它是否适合您。
在App.razor
中,在<Router>
下添加<NotFound>
元素,设置Blazor找不到指定路由时显示的内容。
例如:
<Router AppAssembly="typeof(Program).Assembly">
<NotFound>
<h1>404 Not Found</h1>
</NotFound>
</Router>
(注意:如果是服务器端应用程序,则为 typeof(Startup).Assembly
)
您可以将此 link 用于 .net 5.0 blazor 服务器端应用程序。
您可以正确处理 404 和状态码
为了足够的 SEO 添加 App.razor:
<NotFound>
<h1>404 Not Found</h1>
<HeadContent>
<meta name="robots" content="noindex" />
</HeadContent>
</NotFound>
并实施Sitemap.xml
我想在我的应用程序内部实现一个页面,该页面在 blazor 路由器找不到匹配的路由时显示。目前,所有请求都路由到 index.html
,因此我无法像往常一样通过 iis 处理错误。如果我输入无效路由,我将看到一个空白页面(实际上是 index.html
)并收到控制台错误:
'Router' cannot find any component with a route for '/some/Nonexistent/Route'.
似乎我应该能够处理这个问题,因为 blazor 路由器能够识别出没有定义与请求的路由匹配的路由,但是到目前为止我还找不到任何关于此的文档。
我该如何实施?有没有办法挂接到 blazor 路由器并将所有未找到的路由定向到预定义的错误路由?
我看到 https://github.com/aspnet/AspNetCore/issues/5489 列出了 404 处理程序的问题,但我不确定这是否比我想要做的更强大和生产就绪
试试这个: App.cshtml
<Router AppAssembly=typeof(Program).Assembly FallbackComponent="typeof(Error404)" >
创建一个名为 Error404.cshtml
的组件注意:这只是我从挖掘路由器中收集到的猜测 class。参见 https://github.com/aspnet/AspNetCore/blob/343208331d9ebbb3a67880133f4139bee2cb1c71/src/Components/src/Microsoft.AspNetCore.Components/Routing/Router.cs
请让我知道它是否适合您。
在App.razor
中,在<Router>
下添加<NotFound>
元素,设置Blazor找不到指定路由时显示的内容。
例如:
<Router AppAssembly="typeof(Program).Assembly">
<NotFound>
<h1>404 Not Found</h1>
</NotFound>
</Router>
(注意:如果是服务器端应用程序,则为 typeof(Startup).Assembly
)
您可以将此 link 用于 .net 5.0 blazor 服务器端应用程序。 您可以正确处理 404 和状态码
为了足够的 SEO 添加 App.razor:
<NotFound>
<h1>404 Not Found</h1>
<HeadContent>
<meta name="robots" content="noindex" />
</HeadContent>
</NotFound>
并实施Sitemap.xml