Blazor Server应用修改base path后报fallback endpoint错误如何解决?
Blazor Server 配置base path避免报错的正确步骤
你遇到的报错核心原因是fallback路由配置时额外添加了base path前缀,导致框架找不到对应的回退页面,按以下步骤调整即可:
- 第一步:调整中间件顺序,在Program.cs/Startup.cs的所有中间件注册逻辑最开头添加路径基础配置,代码如下:
app.UsePathBase("/CoolApp");
注意:该配置必须放在UseStaticFiles、UseRouting、UseAuthorization等其他中间件之前才能生效。 - 第二步:修正fallback回退路由配置,不需要手动给回退页面路径加/CoolApp前缀,保持原有配置即可:
.NET 5及以上版本写法:endpoints.MapFallbackToPage("/_Host");
不要写成MapFallbackToPage("/CoolApp/_Host"),该错误写法正是你本次报错的直接诱因。 - 第三步:修改Pages目录下_Host.cshtml文件的head标签内的base配置:
将原有<base href="~/" />替换为<base href="~/CoolApp/" />,末尾的斜杠不可省略,否则会导致静态资源、路由跳转路径匹配错误。 - 第四步:如果是本地开发调试场景,修改launchSettings.json配置文件,将对应启动配置的applicationUrl参数添加/CoolApp后缀,示例如下:
"applicationUrl": "http://localhost:5000/CoolApp"
配置完成后重新启动应用,访问http://localhost:5000/CoolApp即可正常加载,不会再抛出端点找不到的错误。
内容的提问来源于stack exchange,提问作者Calin M
相关产品推荐
相关产品推荐

