IIS virtual directory and ASP.NET directory paths

試著忘記壹切 提交于 2019-11-27 02:14:09

问题


The problem

I'm running into the typical virtual-directory dilemma in that you have some paths on your ASP.Net application and you deploy the app in a IIS virtual directory. Then all paths relatives to the "web root" (f.i., "/images") doesn't work because the app is in a virtual directory path.


The solutions

A. Make the "images" folder a virtual directory. This way "/images" will always exist.

B. Use "<%=Request.ApplicationPath%>/Imagenes" as the source of my images. This works great in IIS but I can't see it in design-time nor in debug-time.

This solution also include these instructions:

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

C. Use relatives paths to the current control/page. This is know exactly where the images folder is relative to my current file (without go to the root. So I would use things like "", "../", "../../" and so on.


The solution I'm looking for

Said that. I don't like these solutions. I would want a solution in the web.config file or in IIS. Some conf intruction I write in the web.config file that tells IIS where my application resides actually (virtual directory).

Any advice?


回答1:


Are you using the tilde (~) for your paths where you can?

~ refers to the root of the virtual Web application....

~/images for example.




回答2:


If it's just for css files on the client side then using the url directive makes the path relative to that of the style sheet rather than the page:

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

Also if you're on asp.net mvc then you have access to:

<script src="<%= Url.Content("~/scripts/new.js") %>" type="text/javascript"></script>


来源:https://stackoverflow.com/questions/1449267/iis-virtual-directory-and-asp-net-directory-paths

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!