我遇到了典型的虚拟目录困境,因为您在ASP.Net应用程序上有一些路径,并且您将应用程序部署在IIS虚拟目录中。然后所有与“web root”(f.i。,“/ images”)相关的路径都不起作用,因为应用程序位于虚拟目录路径中。
A. 将“images”文件夹设为虚拟目录。这样“/ images”将永远存在。
B。使用"<%=Request.ApplicationPath%>/Imagenes"
作为我的图片来源。这在IIS中运行良好,但我无法在设计时和调试时看到它。
此解决方案还包括以下说明:
C。使用当前控件/页面的亲戚路径。这确切地知道images文件夹相对于我当前文件的位置(没有转到root。所以我会使用像“”,“.. /”,“../../”之类的东西。
说。我不喜欢这些解决方案。我想在web.config文件或IIS中找到解决方案。我在web.config文件中写了一些内容,告诉IIS我的应用程序实际驻留在哪里(虚拟目录)。
有什么建议吗?
答案 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>