You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor访问带点号的文件类端点时不显示NotFound页面如何解决

问题根因

ASP.NET Core 托管的Blazor应用默认会将URL中包含.的路径识别为静态文件请求,这类请求不会进入Blazor路由管线,若对应路径不存在实际静态文件,会直接由服务器返回原生404响应,根本不会触发App.razor中<Router>组件的NotFound分支,因此自定义404页面无法渲染。

修复方案

修改项目Program.cs中的配置即可:

  1. 保留静态文件中间件默认注册逻辑,确保wwwroot下的静态资源可以正常访问
app.UseStaticFiles();
  1. 修改兜底回退路由规则,覆盖所有非命中请求(包含带点号的路径),找到文件末尾默认的Blazor回退路由配置,根据托管模式替换为对应规则:
  • Blazor Server 项目替换为:
app.MapFallbackToPage("/{**path}", "/_Host");
  • 托管模式运行的Blazor WASM项目替换为:
app.MapFallbackToFile("/{**path}", "index.html");

注意:请确认站点下需要直接对外提供访问的静态资源(js、css、图片、用户上传文件等)都存放在默认的wwwroot目录下,保证这类请求能被静态文件中间件正常命中,不会错误进入Blazor路由处理流程。

配置完成后重启应用,访问带点号的不存在路径时,就会正常渲染你在App.razor中自定义的NotFound页面了。

内容的提问来源于stack exchange,提问作者Berzohr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 14:18:12