我有一个使用Razor页面(不是MVC)的简单ASP.NET Core Web应用程序。在运行应用程序时,我一直在查看“应用程序见解”,并看到大量与此类文件相关的404错误...
https://localhost:5001/~/lib/bootstrap/dist/js/bootstrap.bundle.js
我的Startup类具有app.UseStaticFiles();
,并且能够为根目录和子目录(如css
和images
)中的其他文件提供服务。那么,为什么它找不到并提供这些.js
文件呢?我尝试将选项添加到静态文件配置中,但似乎没有任何效果。我在Application Insights中不断收到404错误。我可以去文件浏览器,看看这些文件都存在。我已经为此工作了好几个小时,没有成功。
答案 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:
并使用正常外观的标签。