在ASP.NET Core上提供.js文件时出现404错误

时间:2019-01-29 22:26:02

标签: asp.net-core

我有一个使用Razor页面(不是MVC)的简单ASP.NET Core Web应用程序。在运行应用程序时,我一直在查看“应用程序见解”,并看到大量与此类文件相关的404错误...

https://localhost:5001/~/lib/bootstrap/dist/js/bootstrap.bundle.js

我的Startup类具有app.UseStaticFiles();,并且能够为根目录和子目录(如cssimages)中的其他文件提供服务。那么,为什么它找不到并提供这些.js文件呢?我尝试将选项添加到静态文件配置中,但似乎没有任何效果。我在Application Insights中不断收到404错误。我可以去文件浏览器,看看这些文件都存在。我已经为此工作了好几个小时,没有成功。

2 个答案:

答案 0 :(得分:0)

,应该更改为应用程序的根目录(可能是域的根目录或虚拟目录)。如果不是,则表示使用不正确。

我的猜测是您前面有一个斜线:

~

路径应以<script src="/~/lib/bootstrap/dist/js/bootstrap.bundle.js"></script> 开头,而不是斜杠:

~

答案 1 :(得分:0)

我知道了。我的提示是,在Layout.cshtml的空模板项目中,有些标签<environment>以粗体显示,但在我的项目中却没有。在我的ViewImports文件中,我加入了@tagHelperPrefix th:,因此Microsoft标记帮助程序需要特殊的语法,例如<th:link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />。 Microsoft标记帮助程序必须对包含~字符的路径进行特殊处理。

当我将Layout.cshtml中的所有链接标记从<link>替换为<th:link>时,它开始起作用。或者,我可以从ViewImports中取出@tagHelperPrefix th:并使用正常外观的标签。