IIS虚拟目录和ASP.NET目录路径

时间:2009-09-19 19:11:40

标签: asp.net iis relative-path

问题

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


解决方案

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

B。使用"<%=Request.ApplicationPath%>/Imagenes"作为我的图片来源。这在IIS中运行良好,但我无法在设计时和调试时看到它。

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

  • System.Web.VirtualPathUtility.ToAbsolute
  • ResolveClientUrl
  • Request.ApplicationPath

C。使用当前控件/页面的亲戚路径。这确切地知道images文件夹相对于我当前文件的位置(没有转到root。所以我会使用像“”,“.. /”,“../../”之类的东西。


我正在寻找的解决方案

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

有什么建议吗?

2 个答案:

答案 0 :(得分:10)

你在路径中使用波浪号(〜)吗?

〜指的是虚拟Web应用程序的根....

例如,

〜/ images。

答案 1 :(得分: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>
相关问题