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代替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中获得此值?

有两种方法可以解决问题(如所指出的,可以通过基础结构进行其他解决方案):

  1. 使用Url.Content方法:
<link rel="stylesheet" href="@Url.Content("~/css/Custom.css")" />
  1. 使用LinkTagHelper(例如,通过指定asp-append-version属性truefalse):
<link rel="stylesheet" href="~/css/Custom.css" asp-append-version="true" />

最新更新