Blazor WebAssembly通过Kubernetes Ingress访问仅显示加载界面问题
问题分析与解决方案
问题根源
你的Ingress规则使用了pathType: Exact,这个规则仅会精确匹配根路径/,而Blazor WebAssembly启动时需要加载的静态资源(比如/_content/、/framework/下的文件)路径都不是/,这些请求无法匹配Ingress规则,直接返回404,导致页面停留在加载圈。
而直接访问服务时,所有路径请求都会直接到达nginx容器,nginx的try_files配置能正确处理静态资源和SPA路由,所以正常工作。
解决方案
修改Ingress规则,将pathType改为Prefix,这样所有以/开头的请求都会被转发到后端服务:
rules: - host: localhost http: paths: - path: / backend: service: name: customer-pwa-svc port: number: 80 pathType: Prefix
额外验证
你的nginx配置已经正确设置了try_files $uri $uri/ /index.html =404,这个配置能处理Blazor的SPA路由和静态资源请求,不需要修改。另外你已确认Pod内的静态资源文件存在,修改Ingress规则后即可正常访问。
内容的提问来源于stack exchange,提问作者Markus
相关产品推荐
相关产品推荐

