Azure静态Web应用添加/health匿名健康检查路由失败求助
解决Azure静态Web应用/health路由认证例外不生效的问题
问题根源
你的配置存在两个关键问题:
- JSON语法错误:
routes与navigationFallback两个顶级配置项之间缺少逗号,导致整个配置文件无法被正确解析,自定义路由规则根本未生效。 - 路由被重写覆盖:即使语法正确,若
/health路径没有对应的静态文件,会被navigationFallback重写到index.html,而index.html仍受/*的认证规则限制。
正确配置方案
修正语法错误,并将/health加入navigationFallback的排除列表,确保该路由不会被重写:
{ "routes": [ { "route": "/health", "allowedRoles": ["anonymous"] }, { "route": "/*", "allowedRoles": ["authenticated"] } ], "navigationFallback": { "rewrite": "index.html", "exclude": ["/health", "/static/media/*.{png,jpg,gif,svg}", "/static/css/*"] } }
验证逻辑
- Azure静态Web应用的路由规则按数组顺序匹配,先匹配到
/health的匿名访问规则会优先执行,不会触发后续/*的认证要求。 - 将
/health加入exclude后,该路径不会被导航回退重写,需确保/health路径有实际响应(比如添加静态health.html文件,或通过API路由处理该请求)。
内容的提问来源于stack exchange,提问作者Anand
相关产品推荐
相关产品推荐

