En mis aplicaciones, a menudo tengo que usar rutas relativas. Por ejemplo, cuando hago referencia a JQuery, generalmente lo hago así:
<script type="text/javascript" src="../Scripts/jquery-1.2.6.js"></script>
Ahora que estoy haciendo la transición a MVC, necesito tener en cuenta las diferentes rutas que puede tener una página, en relación con la raíz. Por supuesto, esto fue un problema con la reescritura de URL en el pasado, pero me las arreglé para solucionarlo utilizando rutas consistentes.
Soy consciente de que la solución estándar es usar rutas absolutas como:
<script type="text/javascript" src="/Scripts/jquery-1.2.6.js"></script>
pero esto no funcionará para mí, ya que durante el ciclo de desarrollo, tengo que implementarlo en una máquina de prueba en la que la aplicación se ejecutará en un directorio virtual. Las rutas relativas a la raíz no funcionan cuando cambia la raíz. Además, por razones de mantenimiento, no puedo simplemente cambiar todas las rutas durante la implementación de la prueba, eso sería una pesadilla en sí mismo.
Entonces, ¿cuál es la mejor solución?
Editar:
Dado que esta pregunta aún recibe vistas y respuestas, pensé que sería prudente actualizarla para tener en cuenta que a partir de Razor V2, el soporte para URL relativas a la raíz está integrado, por lo que puede usar
<img src="~/Content/MyImage.jpg">
sin ninguna sintaxis del lado del servidor, y el motor de visualización reemplaza automáticamente ~ / con la raíz del sitio actual.
fuente