【发布时间】:2021-05-01 09:51:26
【问题描述】:
在发布模式下,我遇到了从 ASP.NET Core 应用程序的 wwwroot 文件夹访问静态文件的问题。我将静态文件保存在 wwwroot 文件夹中并使用相对路径访问它们,例如访问 wwwroot/images/test.png 以获取 imgsrc 属性/strong> 标签我指定 /images/test.png 并且图片在本地 IIS Express 开发模式下正确加载。
现在我已经在 IIS 管理器 (TestWebsite) 中创建了网站并将我的 Web 应用程序部署到其中,并且我还在站点 (TestApplicationPool) 中创建了应用程序池,因此它是层次结构如下所示:
我遇到的问题是,在将我的路径部署到静态文件并访问它们之后,我需要在任何路径之前都有 /TestApplicationPool (对于上面的示例,现在我需要指定/TestApplicationPool/images/test.png来访问图片)。所以我的问题是有什么办法可以配置 ASP.NET 应用程序始终使用当前应用程序作为内容根路径,这样我们就不需要在路径中指定任何内容,除了相对于 wwwroot 文件夹的静态文件的路径?
我试图从 IWebHostEnvironment 的 ContentRootPath 变量中获取应用程序名称,并将其插入到静态文件的路径之前,在这种情况下一切正常,但不方便每次我们需要从 wwwroot 文件夹加载静态文件时都这样做。
【问题讨论】:
-
TestApplicationPool是什么意思?应用程序池不是在网站本身下创建的。这里出了点问题。 -
从截图来看,TestApplicationPool其实是网站下的一个虚拟目录/应用,可能绑定了同名的应用池。可能只是不幸的命名导致混乱。
标签: c# asp.net asp.net-core asp.net-core-mvc