Zum Inhalt springen

Absolute und relative Pfade

Pfade werden an vielen Stellen verwendet: in Webseiten bei Links und Bilder, beim Verweis auf externe Stylesheets, externe Javascript-Dateien, etc. In C# Programmen um anzugeben welche Datei gelesen werden soll.

Die Schreibweise funktioniert in UNIX, Windows un MacOS ähnlich.

In der Beispiel-Datei http://web-development.github.com/images/urls/index.html sind folgende drei URLs enthalten:

absolut : beginnt mit Protokoll http://web-development.github.com/images/you-are-here.jpg

relativ zum Webserver : beginnt mit einem Schrägstrich (Slash) /images/you-are-here.jpg

relativ zum Dokument : kein besonderes Kennzeichen you-are-here.jpg

Bei den relativen URLs muss man die URL des enthaltenden Dokuments und die relative URLs “zusammen—addieren”, um zu einer absoluten URL zu kommen.

Wenn die relative URL mit einem Schrägstrich (Slash) beginnt ersetzt sie den gesamten “Pfad” in der URL des enthaltenden Dokuments:

http://web-development.github.com/images/urls.html
+ /images/you_are_here.jpg =
http://web-development.github.com/images/you_are_here.jpg

Wenn die relative URL nicht mit einem Schrägstrich beginnt wird sie zum Pfad des aktuellen Ordners dazugerechnet:

http://web-development.github.com/images/urls.html
+ you_are_here.jpg =
http://web-development.github.com/images/you_are_here.jpg

Wird das Dokument an eine andere Stelle verschoben, und ändert sich damit die Ausgangs-URL, dann ist das Ergebnis anders (und würde nicht funktionieren):

http://multimediatechnology.at/2011/06/19/ruby
+ /images/you_are_here.jpg =
http://multimediatechnology.at/images/you_are_here.jpg

und:

http://multimediatechnology.at/2011/06/19/ruby
+ you_are_here.jpg =
http://multimediatechnology.at/2011/06/19/you_are_here.jpg

Relativen URLs können selbst wieder Ordnernamen enthalten:

http://multimediatechnology.at/2011/
+ 12/15/screenshot/=
http://multimediatechnology.at/2011/12/15/screenshot/

Zwei Punkte als Ordnernamen bedeuten dabei: „raus aus dem aktuellen Ordner“:

http://multimediatechnology.at/web-communities/barcamp/
+ ../ =
http://multimediatechnology.at/web-communities/

Dieser Schreibweise erlaubt auch sehr umständliche Formulierungen (mit Redundanz):

http://multimediatechnology.at/2011/06/19/ruby.html
+ ../../../2008/05/../04/17/rattenscharfes-computergame.html =
http://multimediatechnology.at/2008/04/17/rattenscharfes-computergame

All diese Berechnungen finden im Webbrowser statt, und sind völlig unabhängig davon, wie der Webserver die URL interpretiert. So könnte z.B die letzten URL „in Wirklichkeit“ gar nicht auf Ordner mit Namen 2008, 04, 17 verweisen, sondern eine Datenbanksuche nach „2008-04-17“ nach sich ziehen – das ist Sache des Servers.