Nelle mie applicazioni, spesso devo utilizzare percorsi relativi. Ad esempio, quando faccio riferimento a JQuery, di solito lo faccio in questo modo:
<script type="text/javascript" src="../Scripts/jquery-1.2.6.js"></script>
Ora che sto effettuando la transizione a MVC, devo tenere conto dei diversi percorsi che una pagina potrebbe avere, rispetto alla radice. Questo era ovviamente un problema con la riscrittura degli URL in passato, ma sono riuscito a aggirarlo utilizzando percorsi coerenti.
Sono consapevole che la soluzione standard è quella di utilizzare percorsi assoluti come:
<script type="text/javascript" src="/Scripts/jquery-1.2.6.js"></script>
ma questo non funzionerà per me in quanto durante il ciclo di sviluppo, devo distribuire su una macchina di test su cui l'app verrà eseguita in una directory virtuale. I percorsi relativi di root non funzionano quando cambia la root. Inoltre, per motivi di manutenzione, non posso semplicemente cambiare tutti i percorsi per la durata della distribuzione del test: sarebbe un incubo in sé.
Allora qual è la soluzione migliore?
Modificare:
Poiché questa domanda sta ancora ricevendo visualizzazioni e risposte, ho pensato che potrebbe essere prudente aggiornarla per notare che a partire da Razor V2, il supporto per gli URL relativi a root è integrato, quindi puoi usare
<img src="~/Content/MyImage.jpg">
senza alcuna sintassi lato server e il motore di visualizzazione sostituisce automaticamente ~ / con qualunque sia la radice del sito corrente.