在 wwwroot - .Net Core 2.2 Signalr 中引用静态 JavaScript 文件时出现问题
Problems referencing static JavaScript files in wwwroot - .Net Core 2.2 Signalr
我无法从 wwwroot
文件夹中引用 signalr
的相关 js
文件。
我需要参考的路径是:
- wwwroot/lib/@aspnet/signalr/dist/browser/signalr.js
- wwwroot/js/chat.js
这是我的观点:
@page
<div class="container">
<div class="row"> </div>
<div class="row">
<div class="col-6"> </div>
<div class="col-6">
User..........<input type="text" id="userInput" />
<br />
Message...<input type="text" id="messageInput" />
<input type="button" id="sendButton" value="Send Message" />
</div>
</div>
<div class="row">
<div class="col-12">
<hr />
</div>
</div>
<div class="row">
<div class="col-6"> </div>
<div class="col-6">
<ul id="messagesList"></ul>
</div>
</div>
</div>
<script src="~/wwwroot/lib/@@AspNetCore/signalr/dist/browser/signalr.js"></script>
<script src="~/wwwroot/js/chat.js"></script>
我在浏览器中收到 404:
http://localhost:5005/wwwroot/lib/@AspNetCore/signalr/dist/browser/signalr.js
404 (Not Found)
http://localhost:5005/wwwroot/js/chat.js net::ERR_ABORTED 404 (Not
Found)
更新
更改我的脚本路径后,我在浏览器中遇到了这些错误:
http://localhost:5005/lib/@AspNetCore/signalr/dist/browser/signalr.js net::ERR_ABORTED 404(未找到)
未捕获的 ReferenceError:signalR 未定义在 chat.js:3
chat.js
第 3 行:
var connection = new signalR.HubConnectionBuilder().withUrl("/chatHub").build();
下面有红色波浪线。
<script src="~/wwwroot/lib/@@AspNetCore/signalr/dist/browser/signalr.js"></script>
<script src="~/wwwroot/js/chat.js"></script>
替换成这个
@section Scripts {
<script src="~/lib/@@AspNetCore/signalr/dist/browser/signalr.js"></script>
<script src="~/js/chat.js"></script>
}
我建议您更改文件夹名称并像这样替换 url
<script src="~/lib/signalr/dist/browser/signalr.js"></script>
<script src="~/js/chat.js"></script>
勾选这个linktoo
注意:确保您的代码位于页面底部
1st,你应该确保你的应用程序(kestrel 服务器)支持静态文件(app.UseStaticFiles()
在 startup.cs
中的 Configurate 方法),并确保 Microsoft.AspNetCore.Hosting.IHostingEnvironment.WebRoot
是一个文件夹在你的磁盘中(通常它指向$"{Dictory.GetCurrentDirectory()}/wwwroot/"
)。
2,确保你的 signalr.js 在 WebRoot
文件夹中(这样它就可以使用),并注意 wwwroot
文件夹是你的根路径,例如 ~/
,这意味着您的 js 文件位于 wwwroot/lib/signalr/signalr.js
razor 的 script Tag Helper 的正确路径是 <script src="~/lib/signalr/signalr.js"></script>
.
我无法从 wwwroot
文件夹中引用 signalr
的相关 js
文件。
我需要参考的路径是:
- wwwroot/lib/@aspnet/signalr/dist/browser/signalr.js
- wwwroot/js/chat.js
这是我的观点:
@page
<div class="container">
<div class="row"> </div>
<div class="row">
<div class="col-6"> </div>
<div class="col-6">
User..........<input type="text" id="userInput" />
<br />
Message...<input type="text" id="messageInput" />
<input type="button" id="sendButton" value="Send Message" />
</div>
</div>
<div class="row">
<div class="col-12">
<hr />
</div>
</div>
<div class="row">
<div class="col-6"> </div>
<div class="col-6">
<ul id="messagesList"></ul>
</div>
</div>
</div>
<script src="~/wwwroot/lib/@@AspNetCore/signalr/dist/browser/signalr.js"></script>
<script src="~/wwwroot/js/chat.js"></script>
我在浏览器中收到 404:
http://localhost:5005/wwwroot/lib/@AspNetCore/signalr/dist/browser/signalr.js 404 (Not Found)
http://localhost:5005/wwwroot/js/chat.js net::ERR_ABORTED 404 (Not Found)
更新
更改我的脚本路径后,我在浏览器中遇到了这些错误:
http://localhost:5005/lib/@AspNetCore/signalr/dist/browser/signalr.js net::ERR_ABORTED 404(未找到)
未捕获的 ReferenceError:signalR 未定义在 chat.js:3
chat.js
第 3 行:
var connection = new signalR.HubConnectionBuilder().withUrl("/chatHub").build();
下面有红色波浪线。
<script src="~/wwwroot/lib/@@AspNetCore/signalr/dist/browser/signalr.js"></script>
<script src="~/wwwroot/js/chat.js"></script>
替换成这个
@section Scripts {
<script src="~/lib/@@AspNetCore/signalr/dist/browser/signalr.js"></script>
<script src="~/js/chat.js"></script>
}
我建议您更改文件夹名称并像这样替换 url
<script src="~/lib/signalr/dist/browser/signalr.js"></script>
<script src="~/js/chat.js"></script>
勾选这个linktoo
注意:确保您的代码位于页面底部
1st,你应该确保你的应用程序(kestrel 服务器)支持静态文件(app.UseStaticFiles()
在 startup.cs
中的 Configurate 方法),并确保 Microsoft.AspNetCore.Hosting.IHostingEnvironment.WebRoot
是一个文件夹在你的磁盘中(通常它指向$"{Dictory.GetCurrentDirectory()}/wwwroot/"
)。
2,确保你的 signalr.js 在 WebRoot
文件夹中(这样它就可以使用),并注意 wwwroot
文件夹是你的根路径,例如 ~/
,这意味着您的 js 文件位于 wwwroot/lib/signalr/signalr.js
razor 的 script Tag Helper 的正确路径是 <script src="~/lib/signalr/signalr.js"></script>
.