Ein nettes Feature von ASP.NET ist unter anderem seit Beginn an die Möglichkeit, Pfade prinzipiell relativ zum Application-Root anzugeben. Gebrauch machen kann man davon zum Beispiel beim ImageControl usw.:
ASPX:
"myImg" runat="server" ImageUrl="~/img/bild.jpg" />
HTML am Client:
"meineApp/img/bild.jpg" />
Vorteil: man braucht sich nicht mehr um die Pfade zu kümmern, egal wo die Applikation liegt, die Pfade werden immer richtig entsprechend der aktuellen Umgebung gerendert.
Nun kam die Frage auf, wie man soetwas selbst macht. D.h. man hat einen relativen Pfad und möchte diesen in den richtigen umwandeln lassen. Die Methode ist etwas versteckt, wenn auch selbstsprechend benannt: ResolveUrl(). Damit kann man seine eigenen Pfade auflösen:
ResolveUrl("~/bilder/spacer.gif")