Dans mes applications, je dois souvent utiliser des chemins relatifs. Par exemple, lorsque je référence JQuery, je le fais généralement comme ceci:
<script type="text/javascript" src="../Scripts/jquery-1.2.6.js"></script>
Maintenant que je fais la transition vers MVC, je dois tenir compte des différents chemins qu'une page peut avoir, par rapport à la racine. C'était bien sûr un problème de réécriture d'URL dans le passé, mais j'ai réussi à le contourner en utilisant des chemins cohérents.
Je suis conscient que la solution standard consiste à utiliser des chemins absolus tels que:
<script type="text/javascript" src="/Scripts/jquery-1.2.6.js"></script>
mais cela ne fonctionnera pas pour moi car pendant le cycle de développement, je dois déployer sur une machine de test sur laquelle l'application s'exécutera dans un répertoire virtuel. Les chemins relatifs racine ne fonctionnent pas lorsque la racine change. De plus, pour des raisons de maintenance, je ne peux pas simplement changer tous les chemins pendant la durée du déploiement du test - ce serait un cauchemar en soi.
Alors, quelle est la meilleure solution?
Éditer:
Étant donné que cette question reçoit toujours des vues et des réponses, j'ai pensé qu'il pourrait être prudent de la mettre à jour pour noter qu'à partir de Razor V2, la prise en charge des URL relatives à la racine est intégrée, vous pouvez donc utiliser
<img src="~/Content/MyImage.jpg">
sans aucune syntaxe côté serveur, et le moteur de vue remplace automatiquement ~ / par quelle que soit la racine actuelle du site.