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

按照ASP.NET Core SignalR入门文档操作出现signalr.js 404错误

解决ASP.NET Core SignalR 2.1中signalr.js 404找不到的问题

我刚帮你梳理了这个问题的常见原因和解决办法,在.NET Core 2.1环境下,SignalR的客户端JS库不会自动随项目创建而包含,很容易出现这种404的情况,下面一步步来解决:

一、先确认SignalR客户端库有没有正确安装

.NET Core 2.1的SignalR客户端需要手动安装,推荐两种方式:

1. 用npm安装(适合熟悉前端工具的同学)

  • 打开终端进入项目根目录,先初始化npm(如果项目还没初始化的话):
    npm init -y
    
  • 安装对应2.1版本的SignalR客户端:
    npm install @aspnet/signalr@2.1.1
    
  • 安装完成后,去node_modules/@aspnet/signalr/dist/browser目录找到signalr.js,把它复制到项目的wwwroot/lib/signalr/文件夹里(没有这个文件夹就手动创建一个)。

2. 用LibMan安装(更适合.NET开发者)

  • 在项目根目录新建一个libman.json文件,内容填下面这段:
    {
      "version": "1.0",
      "defaultProvider": "cdnjs",
      "libraries": [
        {
          "library": "@aspnet/signalr@2.1.1",
          "destination": "wwwroot/lib/signalr/"
        }
      ]
    }
    
  • 如果还没装LibMan工具,先全局安装:
    dotnet tool install -g Microsoft.Web.LibraryManager.Cli
    
  • 然后运行还原命令,库就会自动下载到指定目录:
    libman restore
    

二、检查HTML里的引用路径对不对

打开你的页面,看看引用signalr.js的代码,要和文件实际位置匹配:

  • 如果是Razor视图,用波浪线路径:
    <script src="~/lib/signalr/signalr.js"></script>
    
  • 如果是静态HTML文件,用根相对路径:
    <script src="/lib/signalr/signalr.js"></script>
    

三、确认Startup.cs里的静态文件中间件配置对了

一定要在Startup.cs的Configure方法里先启用静态文件中间件,而且要放在SignalR的配置前面,不然静态文件访问不了:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    // 其他中间件(比如异常处理)先放前面
    app.UseStaticFiles(); // 这个必须有!负责托管wwwroot下的静态文件
    app.UseSignalR(routes =>
    {
        routes.MapHub<ChatHub>("/chatHub");
    });
    // 其他中间件(比如MVC)放后面
}

四、针对官方示例项目的补充说明

官方的示例项目通常不会把node_modules或者下载好的客户端库提交到Git上,所以你克隆下来后得自己按照上面的步骤安装客户端库,把signalr.js放到正确的目录里,再重新运行项目就不会报错了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:55:12