In meinen Anwendungen muss ich häufig relative Pfade verwenden. Wenn ich zum Beispiel auf JQuery verweise, mache ich das normalerweise so:
<script type="text/javascript" src="../Scripts/jquery-1.2.6.js"></script>
Jetzt, da ich den Übergang zu MVC mache, muss ich die unterschiedlichen Pfade berücksichtigen, die eine Seite im Verhältnis zum Stamm haben kann. Dies war in der Vergangenheit natürlich ein Problem beim Umschreiben von URLs, aber ich habe es geschafft, es mithilfe konsistenter Pfade zu umgehen.
Mir ist bewusst, dass die Standardlösung darin besteht, absolute Pfade zu verwenden, wie zum Beispiel:
<script type="text/javascript" src="/Scripts/jquery-1.2.6.js"></script>
Dies funktioniert jedoch nicht für mich, da ich während des Entwicklungszyklus auf einem Testcomputer bereitstellen muss, auf dem die App in einem virtuellen Verzeichnis ausgeführt wird. Relative Root-Pfade funktionieren nicht, wenn sich der Root ändert. Außerdem kann ich aus Wartungsgründen nicht einfach alle Pfade für die Dauer der Bereitstellung des Tests ändern - das wäre an sich schon ein Albtraum.
Was ist die beste Lösung?
Bearbeiten:
Da diese Frage immer noch Ansichten und Antworten erhält, hielt ich es für ratsam, sie zu aktualisieren, um festzustellen, dass ab Razor V2 die Unterstützung für root-relative URLs integriert ist, sodass Sie sie verwenden können
<img src="~/Content/MyImage.jpg">
ohne serverseitige Syntax, und die Ansichts-Engine ersetzt ~ / automatisch durch das aktuelle Site-Stammverzeichnis.