Dans mes applications, je dois souvent utiliser des chemins relatifs. Par exemple, lorsque je fais 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 avec la 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 est d'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 fonctionnera dans un répertoire virtuel. Les chemins relatifs à la 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.
Quelle est donc la meilleure solution ?
Edit :
Puisque cette question reçoit toujours des avis et des réponses, j'ai pensé qu'il serait prudent de la mettre à jour pour signaler que depuis Razor V2, la prise en charge des urls relatives à la racine est intégrée, de sorte que vous pouvez utiliser
<img src="~/Content/MyImage.jpg">
sans aucune syntaxe côté serveur, et le moteur d'affichage remplace automatiquement ~/ par la racine actuelle du site.