asp.net-core - signalR 未定义 - 无法在 aspnet 核心 Web 应用程序中解析 signalR
问题描述
我不明白为什么我似乎无法在我的 aspnet 核心应用程序中解析 SignalR 客户端库。我已经包含了在 index.html 中引用的库,但是当 javascript 库看不到参考时。
使用 VS2019 和 .net core 3.0 创建了一个默认反应项目https://github.com/rohitisinhk/signalRIssue
- 添加 @aspnet/signalr 作为客户端库并确认它在 libman.json https://github.com/rohitisinhk/signalRIssue/blob/master/SignalRWebApp/libman.json中列出
{
"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;
解决方案
请注意,您正在使用 libman 管理 signalR 库,它将文件恢复到
lib/@aspnet/signalr/
,因此,npm 不了解 signalR 库。如果您更喜欢 libman 而不是 npm,则可以
signalR
将window.signalR
常量信号RConst =窗口。信号R;
因为您将文件还原到
lib/@aspnet/signalr/
而不是wwwroot/lib/@aspnet/signalr/
,所以不要忘记从文件夹中提供静态文件lib/**/*
或者您可以使用 npm 来管理依赖项:
> cd ClientApp > npm install @aspnet/signalr --save
现在你可以
signalR
通过import * as signalR from "@aspnet/signalr";
推荐阅读
- maven - maven 目标使用默认的 maven repo 而不是配置的
- reactjs.net - 如何通过其父级中的“id”访问(自定义组件的)元素?(ReactJS.Net)
- kubernetes - K8s:尝试访问集群外的某个域时如何更改 pod 的名称服务器
- flutter - 如何在列内使用 FractionallySizedBox?
- mysql - 我可以在 MYSQL 的 HAVING 子句中使用表别名吗?
- typescript - 功能
( ): T[] => IComponent[] - 不分配给 T - java - Apache POI replaceText() 副作用,改变行距
- excel - 随着行的增加,单元格中的居中形状从顶部增加高度
- swift - 我应该如何将 DispatchGroup 用于两个 url 请求?
- javascript - 如何在javascript中的两个现有对象之间复制