Blazor服务器端项目添加页面后显示短暂即提示NotFound问题排查
Blazor Server新页面短暂显示后提示"Not found"的解决办法
针对.NET 8+ Blazor Web App(服务器端项目)
- 启用交互式渲染模式:如果页面需要交互能力,在页面顶部添加
@rendermode InteractiveServer,或者在Program.cs中全局配置:
同时确保builder.Services.AddRazorComponents() .AddInteractiveServerRenderMode();Routes.razor中的Router组件正确关联项目程序集,默认配置一般无需修改,但如果自定义了路由范围,要确认AppAssembly或AdditionalAssemblies包含当前项目。 - 检查路由冲突:确认
@page "/OtherPage"未与其他页面路由重复,也没有被通配符路由(如@page "/{*catchall}")优先匹配。 - 清理并重新生成项目:Visual Studio的缓存可能导致路由未更新,右键项目选择「清理」,再重新生成解决方案后运行。
针对.NET 7及以下Blazor Server项目
- 验证核心路由配置:检查
Program.cs中是否包含以下关键代码,缺少会导致路由无法正确解析:app.MapBlazorHub(); app.MapFallbackToPage("/_Host"); - 确认Base路径正确性:打开
_Host.cshtml,确保<base href="/" />的路径与项目部署根路径一致,路径错误会导致路由跳转异常。 - 检查页面基类:新页面默认继承
ComponentBase,若手动修改了基类,需确保基类未破坏路由功能。
通用排查点
- 路由拼写:确认
@page指令中的路由路径无拼写错误,比如大小写、斜杠位置是否正确。 - 页面位置:确保新页面放在
Components/Pages文件夹下(.NET 8+)或Pages文件夹下(旧模板),路由系统默认扫描这些目录的组件。
内容的提问来源于stack exchange,提问作者Richard Barraclough
相关产品推荐
相关产品推荐

