繁体   English   中英

有什么方法可以为 ASP.NET Core 中的内容设置通用根路径?

[英]Is there any way to set a generic root path for content in ASP.NET Core?

我在发布模式下从 ASP.NET 核心应用程序中的 wwwroot 文件夹访问 static 文件时遇到了问题。 我将 static 文件保存在 wwwroot 文件夹中并使用相对路径访问它们,例如访问wwwroot/images/test.png以获取img标签的src属性我指定/images/test.png并且图片在本地 IIS Express 中正确加载发展模式。

现在我在 IIS 管理器 ( TestWebsite ) 中创建了网站并将我的 web 应用程序部署到它,并且我在站点 ( TestApplicationPool ) 中创建了应用程序池,因此它的层次结构如下所示:

我遇到的问题是,在将我的路径部署到 static 文件后,我需要在任何路径之前使用/TestApplicationPool来访问它们(对于上面的示例,现在我需要指定/TestApplicationPool/images/test.png才能访问图片)。 所以我的问题是有什么方法可以配置 ASP.NET 应用程序始终使用当前应用程序作为内容根路径,这样我们就不需要在路径中指定任何内容,除了 static 文件相对于 wwwroot 文件夹的路径?

我试图从IWebHostEnvironmentContentRootPath变量中获取应用程序名称,并将其插入到 static 文件的路径之前,在这种情况下一切正常,但是每次我们需要从 wwwroot 文件夹加载 static 文件时都这样做很不方便。

在 MVC 视图或 Razor 页面中,您可以在路径上使用波浪号和斜线 (~/) 前缀来在 cshtml 视图/页面的大多数位置表示 web 根(默认为 wwwroot)。

例如:

<img src="~/hello.jpg" />

即使部署在 IIS 中的虚拟目录下(如您的示例),这也应该转换为正确的路径。

可以在此处找到有关 web 根的相关文档,其中提到了 ~/ https://docs.microsoft.com/en-us/aspnet/core/fundamentals/?view=aspnetcore-5.0&tabs=windows#web-root

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM