Blazor 怎么捕获路由不存在的页面 (404)
发布时间 - 2025-12-26 00:00:00 点击率:次Blazor中捕获404页面依靠Router组件的NotFound模板实现,而非HTTP状态码;需在App.razor中配置NotFound内容,并配合静态服务器fallback至index.html。
Blazor 中捕获 404(路由不存在)页面,核心在于利用 NotFound 组件 —— 这是 Blazor Router 内置的兜底机制,不是靠 HTTP 状态码或服务器重定向。
使用 Router 的 NotFound 模板
在 App.razor(或主路由组件)中,Router 组件支持一个 NotFound 属性,它会在所有已注册路由都不匹配时渲染对应内容:
- 该内容可以是纯文本、自定义组件,甚至带导航的页面
- 它不触发真实 HTTP 404 响应(浏览器地址栏仍显示错误路径,状态码仍是 200)
- 适合 SPA 场景下的用户体验兜底
示例:基础 404 页面
在 App.razor 中写:
页面未找到 ❌ 找不到您访问的页面
路径:@uri
返回首页
注意:@uri 是 Router 自动提供的当前 URL(需确保在 NotFound 模板内直接使用,无需额外声明)
进阶:跳转前记录或重定向
如果需要做日志、自动跳转或模拟服务端 404 行为,可在 NotFound 中调用 NavigationManager:
- 注入
@inject NavigationManager Navigation - 用
@onload或组件生命周期(如OnInitialized)触发逻辑 - 例如 3 秒后跳回首页:
Navigation.Naviga(
teTo("/", true);true强制刷新) - 如需上报错误路径,可搭配 JS Interop 或 API 日志服务
服务端配合(可选但推荐)
Blazor WebAssembly 部署到静态服务器时,必须配置服务器将所有未知路径 fallback 到 index.html,否则直接 404;Blazor Server 则由 SignalR 连接兜底,一般无需额外配置。常见配置:
- Nginx:
try_files $uri $uri/ /index.html; - IIS:web.config 中添加 rewrite 规则
- GitHub Pages / Vercel:启用 SPA 模式或配置 _redirects
基本上就这些。Blazor 的 404 是前端路由层面的“未命中”,关键在 NotFound 模板 + 服务端 fallback 配合,不复杂但容易忽略后者。
# html
# js
# 前端
# git
# github
# nginx
# 浏览器
# app
# iis
# ai
# 路由
# 状态码
# red
# gate
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
昵图网官方站入口 昵图网素材图库官网入口
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
Thinkphp 中 distinct 的用法解析
如何快速生成高效建站系统源代码?
Laravel如何处理异常和错误?(Handler示例)
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
在线制作视频网站免费,都有哪些好的动漫网站?
Laravel用户密码怎么加密_Laravel Hash门面使用教程
Python文本处理实践_日志清洗解析【指导】
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
如何在云主机上快速搭建网站?
香港服务器如何优化才能显著提升网站加载速度?
如何用JavaScript实现文本编辑器_光标和选区怎么处理
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
深圳网站制作的公司有哪些,dido官方网站?
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
EditPlus中的正则表达式 实战(2)
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
如何在七牛云存储上搭建网站并设置自定义域名?
如何用PHP快速搭建CMS系统?
如何用IIS7快速搭建并优化网站站点?
html5的keygen标签为什么废弃_替代方案说明【解答】
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
如何在建站宝盒中设置产品搜索功能?
Laravel集合Collection怎么用_Laravel集合常用函数详解
敲碗10年!Mac系列传将迎来「触控与联网」双革新
Internet Explorer官网直接进入 IE浏览器在线体验版网址
如何用PHP快速搭建高效网站?分步指南
Laravel如何创建自定义Facades?(详细步骤)
怎么用AI帮你设计一套个性化的手机App图标?
如何快速辨别茅台真假?关键步骤解析
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
Laravel如何创建自定义Artisan命令?(代码示例)
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
如何在建站之星网店版论坛获取技术支持?
如何在建站之星绑定自定义域名?
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
用v-html解决Vue.js渲染中html标签不被解析的问题
如何在万网利用已有域名快速建站?
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
nodejs redis 发布订阅机制封装实现方法及实例代码
JavaScript实现Fly Bird小游戏


teTo("/", true);