IIS虚拟目录和ASP.NET目录路径 问题
我遇到了一个典型的虚拟目录困境,即ASP.Net应用程序上有一些路径,而应用程序部署在IIS虚拟目录中。那么所有与“web根目录”(f.i.,“/images”)相关的路径都不起作用,因为应用程序位于虚拟目录路径中IIS虚拟目录和ASP.NET目录路径 问题,asp.net,iis,relative-path,Asp.net,Iis,Relative Path,我遇到了一个典型的虚拟目录困境,即ASP.Net应用程序上有一些路径,而应用程序部署在IIS虚拟目录中。那么所有与“web根目录”(f.i.,“/images”)相关的路径都不起作用,因为应用程序位于虚拟目录路径中 解决方案 A.将“图像”文件夹设为虚拟目录。这样“/图像”将始终存在 B.使用“/Imagenes”作为我的图像源。这在IIS中非常有效,但我在设计时和调试时都看不到它 此解决方案还包括以下说明: System.Web.VirtualPath实用性.ToAbsolute Reso
解决方案 A.将“图像”文件夹设为虚拟目录。这样“/图像”将始终存在 B.使用
“/Imagenes”
作为我的图像源。这在IIS中非常有效,但我在设计时和调试时都看不到它
此解决方案还包括以下说明:
- System.Web.VirtualPath实用性.ToAbsolute
- ResolveClientUrl
- Request.ApplicationPath
我正在寻找的解决方案 我不喜欢这些解决方案。我希望在web.config文件或IIS中找到解决方案。我在web.config文件中编写的一些conf指令告诉IIS我的应用程序实际驻留的位置(虚拟目录) 有什么建议吗?您是否可以使用波浪线(~)作为路径 ~指虚拟Web应用程序的根
例如~/images。如果只是客户端的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>
或者,对于非服务器端img元素,您可以使用“/”字符表示根目录,如@klabranche,波浪号(~)用于服务器端控件,仅在服务器端代码中可用()@DavidAndres,斜杠“/”假定您的应用程序位于网站根目录中(不用于虚拟目录)。()>一个站点根相对路径,它是根据站点根(而不是应用程序根)解析的。@delamo-我确实说过你可以在哪里…我知道你正在寻找一种替代方法来处理你列出的路径。我只是想确保你至少在你可以做的地方做了你可以做的事情。:@klabranche-抱歉,谢谢。事实上,我在几个控件中使用了它。但我想在aspx页面和css文件中解决这个问题:/@daelmo:你是对的。图像需要放在inetpub\wwwroot\images中,或者img元素的src属性应该更新为“/virtual directory/images/back.png”,感谢您的更新。我将此解决方案与“主题和皮肤”结合使用,不带任何路径,将图像与样式表并排放在主题目录中。