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

ABP Blazor WebAssembly容器化部署及登录回调404问题求助

ABP Blazor WebAssembly 容器化部署:修复登录回调404问题

核心问题诊断

当前配置存在两个关键错误:

  • Nginx配置未生效:Dockerfile中将nginx.conf复制到了/usr/share/nginx/html目录,但Nginx默认加载的是/etc/nginx/nginx.conf,导致你的SPA路由规则根本没被应用。
  • 冗余构建阶段:Dockerfile中包含无用的aspnet:7.0阶段,完全可以删除,不影响构建流程。

修正后的Dockerfile

# 构建阶段
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build-env
WORKDIR /build
COPY . .

WORKDIR /build/src/MyCompany.Blazor
RUN dotnet publish -c Release -o out

# 最终镜像(基于Nginx Alpine)
FROM nginx:alpine
# 复制发布后的静态文件
COPY --from=build-env /build/src/MyCompany.Blazor/out/wwwroot /usr/share/nginx/html
# 替换配置文件为Staging环境
RUN rm /usr/share/nginx/html/appsettings.json && \
    mv /usr/share/nginx/html/appsettings.Staging.json /usr/share/nginx/html/appsettings.json
# 复制Nginx配置到正确路径
COPY --from=build-env /build/src/MyCompany.Blazor/nginx.conf /etc/nginx/nginx.conf

优化后的nginx.conf

添加Blazor WASM所需的MIME类型,并确保路由规则正确处理SPA路由:

events { }
http {
    include mime.types;
    # 添加Blazor WASM缺失的MIME类型
    types {
        application/wasm wasm;
    }

    server {
        listen 80;
        root /usr/share/nginx/html;

        location / {
            try_files $uri $uri/ /index.html;
        }

        # 显式处理认证回调路径,确保路由到index.html
        location /authentication/ {
            try_files $uri $uri/ /index.html;
        }
    }
}

额外排查点

  1. 客户端与授权服务器配置一致性:

    • 确认授权服务器中MyCompany_Blazor客户端的RedirectUris列表包含https://staging.mycompany.com/authentication/login-callback,且完全匹配(包括HTTPS、路径、无多余斜杠)。
    • 检查Blazor项目的appsettings.Staging.json中,Authentication:Oidc配置的Authority、RedirectUri、PostLogoutRedirectUri是否正确指向你的授权服务器和前端域名。
  2. Kubernetes Ingress配置:

    • 确保Ingress规则没有拦截/authentication/*路径,所有前端请求都转发到Nginx容器的80端口。
    • 确认cert-manager生成的证书已正确挂载,Ingress的TLS配置生效。
  3. 种子数据验证:

    • 检查授权服务器的种子数据,确认MyCompany_Blazor客户端的配置(如AllowedGrantTypes包含authorization_code、RequirePkce设为true)符合Blazor WASM的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 19:17:37