ASP.NET 核心中的虚拟应用程序名称
Virtual application name in ASP.NET Core
我在虚拟应用程序名称下安装了一个 ASP.NET 核心应用程序。该站点的URL如下:
http://10.0.0.253/ApplicationName/
问题是所有重定向和静态文件路径都忽略了应用程序名称。如果我的剃刀文件中有以下行:
<link href="~/css/Custom.css" rel="stylesheet">
输出将是http://10.0.0.253/css/Custom.css instead of http://10.0.0.253/ApplicationName/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" />
我在虚拟应用程序名称下安装了一个 ASP.NET 核心应用程序。该站点的URL如下:
http://10.0.0.253/ApplicationName/
问题是所有重定向和静态文件路径都忽略了应用程序名称。如果我的剃刀文件中有以下行:
<link href="~/css/Custom.css" rel="stylesheet">
输出将是http://10.0.0.253/css/Custom.css instead of http://10.0.0.253/ApplicationName/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" />