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

Blazor WASM通过域名访问时出现integrity校验失败问题求助

解决Blazor WASM域名访问时的Integrity校验失败问题

你遇到的错误核心是:域名访问时加载的资源内容为空(计算出的SHA-256哈希是空字符串的哈希值47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=),导致Blazor的资源完整性校验失败,被浏览器拦截。结合IP访问正常、API域名可访问的情况,问题大概率出在Nginx的域名配置上,以下是针对性解决方案:

  • 核对Nginx域名配置的根目录
    确保域名对应的server块中root路径和IP访问时的配置完全一致。如果域名配置的根目录错误,Nginx会返回空内容或404页面,触发校验失败。示例正确配置片段:

    server {
        listen 80;
        server_name your-domain.com;
        root /var/www/blazorapp/wwwroot; # 和IP访问的root路径保持一致
        index index.html;
    
        location / {
            try_files $uri $uri/ /index.html;
        }
    
        # API代理配置(按需调整端口和路径)
        location /api {
            proxy_pass http://localhost:5000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    

    修改配置后执行sudo nginx -s reload生效。

  • 强制清除浏览器缓存
    Blazor WASM会缓存静态资源,域名访问时可能加载了旧的缓存记录,导致和当前服务器资源不匹配。按Ctrl+Shift+R强制刷新页面,或直接清空浏览器缓存后重试。

  • 检查Nginx的路由重写规则
    确保域名配置中的try_files规则正确,Blazor作为单页应用,所有非API的请求都应重定向到index.html。如果规则错误,静态资源(如.dll.js、.css)会被错误路由到HTML页面,返回内容不符合预期,触发校验失败。

  • 验证服务器资源的权限与完整性
    登录Ubuntu服务器,检查wwwroot目录下的静态资源是否存在、内容完整,且Nginx进程(通常是www-data用户)有读取权限:

    # 递归设置所有者为www-data
    sudo chown -R www-data:www-data /var/www/blazorapp/wwwroot
    # 递归设置可读权限
    sudo chmod -R 755 /var/www/blazorapp/wwwroot
    
  • 排查Nginx的gzip压缩配置
    如果Nginx开启了gzip压缩,可能压缩过程中修改了资源内容,导致integrity校验不通过。可以临时在域名server块中添加gzip off;,重启Nginx后测试。如果问题解决,要么保持gzip关闭,要么调整Blazor发布配置,禁用资源压缩,让Nginx统一处理压缩(需确保Nginx压缩后的资源能和Blazor生成的integrity哈希匹配)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 09:50:11