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

发布Blazor Server应用到Nginx服务器时如何引用blazor.server.js文件

解决Blazor Server在Nginx下无法加载_framework/blazor.server.js的问题

你的问题出在Nginx配置的静态资源匹配规则上:_framework/blazor.server.js所在的_framework目录和wwwroot是同级的发布目录,而你当前的配置只针对wwwroot下的静态资源做了映射,没有处理_framework路径的请求,导致该请求被转发到后端的5000端口,无法正确加载静态文件。

直接修改Nginx配置即可解决,调整后的配置如下:

server {
    listen 8080;
    listen [::]:8080;
    server_name blazor.local;

    # 专门处理_framework目录下的资源,指向Blazor应用的发布根目录
    location /_framework/ {
        root /usr/share/nginx/html/blazor;
        expires 1y;
        add_header Cache-Control "public, immutable";
    }

    # 处理wwwroot下的常规静态资源
    location ~* \.(css|js|png|ttf|otf|woff)$ {
        root /usr/share/nginx/html/blazor/wwwroot;
    }

    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

配置修改说明:

  • 新增location /_framework/规则:直接匹配_framework开头的请求,将root指向Blazor应用的发布根目录(而非wwwroot),保证能找到_framework/blazor.server.js文件。
  • 简化原静态资源匹配规则:无需单独指定styles.css、server.js,后缀匹配已覆盖这些文件类型。
  • 调整Connection头为"upgrade":符合Blazor Server的WebSocket连接要求,避免后续交互异常。

完成配置修改后,执行以下操作确保生效:

  1. 验证Nginx配置语法:sudo nginx -t
  2. 重启Nginx服务:sudo systemctl restart nginx
  3. 确认发布目录权限:给Nginx用户授予读取权限,执行chmod -R 755 /usr/share/nginx/html/blazor

内容的提问来源于stack exchange,提问作者Richard Vázquez Pérez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:55:32