首页 > 解决方案 > signalR 未定义 - 无法在 aspnet 核心 Web 应用程序中解析 signalR

问题描述

我不明白为什么我似乎无法在我的 aspnet 核心应用程序中解析 SignalR 客户端库。我已经包含了在 index.html 中引用的库,但是当 javascript 库看不到参考时。

使用 VS2019 和 .net core 3.0 创建了一个默认反应项目https://github.com/rohitisinhk/signalRIssue

{
  "version": "1.0",
  "defaultProvider": "cdnjs",
  "libraries": [
    {
      "provider": "unpkg",
      "library": "@aspnet/signalr@1.1.4",
      "destination": "lib/@aspnet/signalr/",
      "files": [
        "dist/browser/signalr.js",
        "dist/browser/signalr.js.map",
        "dist/browser/signalr.min.js",
        "dist/browser/signalr.min.js.map"
      ]
    }
  ]
}

在 html 文件中,我引用了 signalr.js https://github.com/rohitisinhk/signalRIssue/blob/master/SignalRWebApp/ClientApp/public/index.html

<script src="/lib/@aspnet/signalr/dist/browser/signalr.js"></script>

但是在javascript文件中我似乎无法解析signalR

https://github.com/rohitisinhk/signalRIssue/blob/master/SignalRWebApp/ClientApp/src/index.js

const signalRConst = signalR;

标签: asp.net-coresignalrsignalr.clientasp.net-core-signalr

解决方案


  1. 请注意,您正在使用 libman 管理 signalR 库,它将文件恢复到lib/@aspnet/signalr/,因此,npm 不了解 signalR 库。

    如果您更喜欢 libman 而不是 npm,则可以signalRwindow.signalR

    常量信号RConst =窗口。信号R;
    

    因为您将文件还原到lib/@aspnet/signalr/而不是wwwroot/lib/@aspnet/signalr/,所以不要忘记从文件夹中提供静态文件lib/**/*

  2. 或者您可以使用 npm 来管理依赖项:

    > cd ClientApp
    > npm install @aspnet/signalr --save
    

    现在你可以signalR通过

    import * as signalR from "@aspnet/signalr";
    

推荐阅读