我在虚拟应用程序名称下安装了ASP.NET核心应用程序。网站的URL如下:
http://10.0.0.253/ApplicationName/
问题是所有重定向和静态文件路径忽略了应用程序名称。如果我的剃须刀文件中有以下行:
<link href="~/css/Custom.css" rel="stylesheet">
输出将为http://10.0.0.253/css/custom.css代替http://10.0.0.253/applicationname/css/custom.css/custom.css
问题在于,该应用程序将在许多不同的虚拟应用程序下执行,这意味着我无法通过键入正确的URL来修复URL,因为取决于将执行的应用程序,生成的URL将不同。在ASP.NET MVC 5中,我可以使用以下代码获得虚拟应用程序名称:
string VPath = Request.ApplicationPath;
有没有办法在ASP.NET Core中获得此值?
有两种方法可以解决问题(如所指出的,可以通过基础结构进行其他解决方案):
- 使用
Url.Content
方法:
<link rel="stylesheet" href="@Url.Content("~/css/Custom.css")" />
- 使用
LinkTagHelper
(例如,通过指定asp-append-version
属性true
或false
):
<link rel="stylesheet" href="~/css/Custom.css" asp-append-version="true" />