Javascript signalR未定义,但signalR.js已加载到调试器中

Javascript signalR未定义,但signalR.js已加载到调试器中,javascript,asp.net-core,signalr,Javascript,Asp.net Core,Signalr,我正在尝试将SignalR用于ASP.NET Core 2.0,但当我尝试在我的视图中实现SignalR客户端时,我得到一个错误,即变量“SignalR”未定义,尽管自动完成在我的编辑器中工作正常,但脚本如下: <script type="text/javascript"> var _transport = signalR.TransportType.WebSockets; //HERE var connection = new signalR.HubConnection(`http

我正在尝试将SignalR用于ASP.NET Core 2.0,但当我尝试在我的视图中实现SignalR客户端时,我得到一个错误,即变量“SignalR”未定义,尽管自动完成在我的编辑器中工作正常,但脚本如下:

<script type="text/javascript">
var _transport = signalR.TransportType.WebSockets; //HERE
var connection = new signalR.HubConnection(`http://${document.location.host}/chat`, {transport: _transport});

var messageInput = document.getElementById('message');
var name = '@User.Identity.Name';
var button = document.getElementById('sendMessage');

connection.on('broadcastMessage', (name, message) => {
    var text = document.createElement('p');
    text.innerHTML = '<strong>' + name + '</strong>' + "&nbsp;:&nbsp;" + message;

    document.getElementById('messageArea').appendChild(text);
});

button.addEventListener("click", event => {    
    connection.invoke('send', name, messageInput.value);
    messageInput.value = '';
    messageInput.focus();
});

connection.start();

var _transport=signal.TransportType.WebSockets//在这里
var connection=new signal.HubConnection(`http://${document.location.host}/chat`,{transport:_transport});
var messageInput=document.getElementById('message');
var name='@User.Identity.name';
var button=document.getElementById('sendMessage');
connection.on('broadcastMessage',(名称、消息)=>{
var text=document.createElement('p');
text.innerHTML=''+name+''+':“+消息;
document.getElementById('messageArea').appendChild(文本);
});
addEventListener(“单击”,事件=>{
调用('send',name,messageInput.value);
messageInput.value='';
messageInput.focus();
});
connection.start();

我在my_Layout.cshtml中添加了signalr.js

下面是我的wwwroot的树结构,我在其中为signalr添加了.js文件:

最后,这里是Firefox中的调试器结构,我可以看到signalr.js已经加载,jQuery和bootstrap也已经加载


那么为什么“信号器”没有定义呢?我错过了什么?是因为我在项目中手动添加了signarjavascript文件吗?(可能…

我认为您的脚本是在加载signalr.js之前执行的。尝试使用事件来执行代码。如果我们在文档加载时这样做,那么我们将确保它已定义

$(document).load(function(){
   // your code here
});

现在我觉得自己很笨。非常感谢。虽然,它不是$(document).ready而不是$(document).load?ready()是在加载dom时,当它和所有子元素都被完全加载时,加载事件被发送到元素,所以我认为在这种情况下加载更好。