19

问题

我遇到了典型的虚拟目录困境,因为您的 ASP.Net 应用程序上有一些路径,并且您将应用程序部署在 IIS 虚拟目录中。然后所有与“web root”(fi,“/images”)相关的路径都不起作用,因为应用程序位于虚拟目录路径中。


解决方案

A.将“images”文件夹设为虚拟目录。这样“/images”将永远存在。

B.用作"<%=Request.ApplicationPath%>/Imagenes"我的图像的来源。这在 IIS 中效果很好,但我在设计时和调试时都看不到它。

此解决方案还包括以下说明:

  • System.Web.VirtualPathUtility.ToAbsolute
  • 解析客户端网址
  • 请求.ApplicationPath

C.使用当前控件/页面的相对路径。这确切地知道图像文件夹相对于我当前文件的位置(无需转到根目录。所以我会使用“”、“../”、“../../”等内容。


我正在寻找的解决方案

这么说的。我不喜欢这些解决方案。我想在 web.config 文件或 IIS 中找到解决方案。我在 web.config 文件中编写的一些配置指令告诉 IIS 我的应用程序实际驻留在哪里(虚拟目录)。

有什么建议吗?

4

2 回答 2

12

您是否在可以的地方使用波浪号 (~) 作为路径?

~ 指虚拟 Web 应用程序的根目录....

〜/图像例如。

于 2009-09-19T19:40:22.427 回答
3

如果它只是用于客户端的 css 文件,那么使用 url 指令使路径相对于样式表而不是页面的路径:

h1#title { background: url('dog.gif') no-repeat 0 0; } 

此外,如果您使用的是 asp.net mvc,那么您可以访问:

<script src="<%= Url.Content("~/scripts/new.js") %>" type="text/javascript"></script>
于 2010-10-19T11:37:28.210 回答