asp.net iis relative-path

Directorio virtual de IIS y rutas de directorio de ASP.NET



relative-path (2)

El problema

Me estoy topando con el típico dilema de directorio virtual en el que tiene algunas rutas en su aplicación ASP.Net y despliega la aplicación en un directorio virtual de IIS. Entonces, todas las rutas relacionadas con la "raíz web" (fi, "/ images") no funcionan porque la aplicación está en una ruta de directorio virtual.

Las soluciones

A. Hacer que la carpeta "imagenes" sea un directorio virtual. De esta manera siempre existirá "/ images".

B. Utilice "<%=Request.ApplicationPath%>/Imagenes" como la fuente de mis imágenes. Esto funciona muy bien en IIS, pero no puedo verlo en tiempo de diseño ni en tiempo de depuración.

Esta solución también incluye estas instrucciones:

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

C. Usar rutas familiares a la página / control actual. Esto es exactamente donde la carpeta de imágenes es relativa a mi archivo actual (sin ir a la raíz. Así que usaría cosas como "", "../", "../../" y así sucesivamente.

La solución que estoy buscando.

Dijo eso. No me gustan estas soluciones. Me gustaría una solución en el archivo web.config o en IIS. Algunas instrucciones se escriben en el archivo web.config que le indica a IIS dónde reside realmente mi aplicación (directorio virtual).

¿Algún consejo?


¿Estás usando la tilde (~) para tus caminos donde puedes?

~ se refiere a la raíz de la aplicación web virtual ....

~ / imagenes por ejemplo.


Si es solo para archivos css en el lado del cliente, el uso de la directiva url hace que la ruta sea relativa a la de la hoja de estilo en lugar de a la página:

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

Además, si estás en asp.net mvc, entonces tienes acceso a:

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