Frage zu absoluten und relativen Pfadangaben
Viktor
- html
0 wahsaga0 Viktor0 Der Martin
0 Viktor
0 Blabla0 Viktor0 Der Martin
0 Viktor0 Der Martin
0 Viktor
Hallo,
ich gestalte gerade unsere Vereinswebseite (www.svgoeppingen04.de/test/) neu und bin auf ein Problem gestoßen.
Ich habe ein Layout gemacht und die Navigation in eine PHP-Datei ausgelagert. Diese binde ich dann in jede Seite über
<?php include ('css/layoutoben.php') ?>
ein. In der "layoutoben.php" steht folgendes:
<?php
$id = $_GET["id"];
echo <<<END
<div id="kopf">
<div id="navigation">
<ul class="navi1">
<li class="untermenue" title="Allgemeines über den SV Göppingen 04"><p>Über uns</p>
<ul class="navi2">
<li><a href="index.php" title="Aktuelles">Aktuelles</a></li>
<li><a href="sv04/satzung.php" title="Satzung des SV Göppingen 04">Satzung</a></li>
...
...
...
END;
?>
So weit so gut. Das funktioniert aber nicht mehr, wenn ich "Über uns"-> "Satzung" anklicke und dann wieder auf "Über uns"->"Aktuelles".
Er sucht dann in dem Verzeichnis "sv04" eine index.php, die dort allerdings nicht existiert, sondern nur im Wurzelverzeichnis.
Ich habe daraufhin die relativen Pfadangaben in absolute abgeändert:
<li><a href="http://www.svgoeppingen04.de/index.php" title="Aktuelles">Aktuelles</a></li>
<li><a href="http://www.svgoeppingen04.de/sv04/satzung.php" title="Satzung des SV Göppingen 04">Satzung</a></li>
Dann funktionierte alles wieder.
Für den Beitrag habe ich aber wieder die relativen Pfadangaben verwendet. Damit Ihr seht, wo das Problem ist. Bitte nur "Aktuelles" und "Satzung" anklicken. Der Rest geht eh noch nicht.
Gibt es denn irgendeine Möglichkeit, doch die relative Pfadangabe zu verwenden?
Soweit ich mich noch erinnere, verursachen absolute mehr Last auf dem Webserver als relavive, oder macht das keinen Unterschied?
Ich hoffe, es hat einer einen Tipp für mich.
Gruß
Viktor
hi,
Gibt es denn irgendeine Möglichkeit, doch die relative Pfadangabe zu verwenden?
Ja - relativ zur Domainwurzel bspw.
http://de.selfhtml.org/html/allgemein/referenzieren.htm
Oder aus dem Unterverzeichnis sv04 heraus mittels ../ wieder eine Ebene nach oben.
Aber das haut dann wohl nicht mehr so hin, wenn du das gleiche Menü auf mehreren Seiten in unterschiedlichen Pfad-Tiefen einsetzt.
Da könnte man natürlich noch mit PHP rangehen, und dynamisch die richtigen Pfade zusammensetzen ...
Soweit ich mich noch erinnere, verursachen absolute mehr Last auf dem Webserver als relavive, oder macht das keinen Unterschied?
Das ist völliger Quark.
Es ist Aufgabe des Clients, aus den Pfaden im HTML wieder die Angaben zu erstellen, die er für den HTTP-Request braucht.
Die Anfrage, die er dann an den Server richtet, bleibt die gleiche.
gruß,
wahsaga
Hi,
Aber das haut dann wohl nicht mehr so hin, wenn du das gleiche Menü auf mehreren Seiten in unterschiedlichen Pfad-Tiefen einsetzt.
Genau das wäre dann das Problem. Dann arbeite ich mit absoluten Pfaden.
Das ist völliger Quark.
Es ist Aufgabe des Clients, aus den Pfaden im HTML wieder die Angaben zu erstellen, die er für den HTTP-Request braucht.
Die Anfrage, die er dann an den Server richtet, bleibt die gleiche.
Ich hatte mich da etwas blöde ausgedrückt. Was ich meinte ist eigentlich was anderes. Jede http-Eingabe wird doch ersteinmal an den DNS geschickt. Bei relativen Pfaden wäre das genauso?
Ich würde jetzt einfach behaupten, das die Webseite schneller reagiert mit relativen Pfaden als mit absoluten. So wie ich das von Dir lese ist es völlig schnurz ob absolut oder relativ. Jeder klick auf einen Link liefert letztendlich einen absoluten Pfad der dann an den Webserver geht. Verstehe ich Dich da richtig? Ich verkürze also mit relativen Pfaden weder die Reaktionszeit noch sonstirgendwas.
Gruß
Viktor
Hallo Viktor,
Jede http-Eingabe wird doch ersteinmal an den DNS geschickt.
theoretisch ja, praktisch nein. Die meisten Clients verwalten eine Art DNS-Cache, in dem sie die zuletzt angefragten Hostnamen mit der zugehörigen IP zwischenspeichern. Mehrere aufeinanderfolgende Requests an denselbem Host brauchen daher nur _eine_ DNS-Anfrage.
Bei relativen Pfaden wäre das genauso?
Ja.
So wie ich das von Dir lese ist es völlig schnurz ob absolut oder relativ. Jeder klick auf einen Link liefert letztendlich einen absoluten Pfad der dann an den Webserver geht. Verstehe ich Dich da richtig?
Ja.
Ich verkürze also mit relativen Pfaden weder die Reaktionszeit noch sonstirgendwas.
Du hast es erfasst. ;-)
So long,
Martin
Hi Martin,
und da behaupte noch einer man könne im hohen Alter von 37 nichts mehr lernen *ggg*
Danke an alle für die Infos.
Gruß
Viktor
Hallo Viktor,
und da behaupte noch einer man könne im hohen Alter von 37 nichts mehr lernen *ggg*
doch, man kann. Ich stelle das auch fast täglich immer wieder fest. ;-)
Ciao,
Martin
<li><a href="http://www.svgoeppingen04.de/index.php" title="Aktuelles">Aktuelles</a></li>
Verweise nie auf index.xy. Solltest du oder dein Nachfolger irgendwann mal in die Versuchung kommen, die Seitentechnik zu wechseln, müssten die URLs im Web geändert werden. Natürlich ist das kein Weltuntergang, aber du hast andersherum auch keinerlei Vorteile von /index.xy gegenüber /, also wozu das elendige /index.xy verwenden, wenn's auch kürzer und eindeutiger geht.
Gibt es denn irgendeine Möglichkeit, doch die relative Pfadangabe zu verwenden?
Soweit ich mich noch erinnere, verursachen absolute mehr Last auf dem Webserver als relavive, oder macht das keinen Unterschied?
Da hat dir jemand einen Bären aufgebunden (oder nicht einmal ansatzweise eine Ahnung, wovon er spricht). Auf dem Webserver kommen überhaupt keine relativen Pfade an, sondern ausschließlich Anweisungen in der Form "GET /pfad/zum/objekt HTTP/1.x".
Und die "Last", die den Web_browser_ "belastet", der aus den relativen Pfaden im HTML-Code absolute Pfade bastelt, dürfte vernachlässigbar sein (und das ist eigentlich noch übertrieben).
Verwende /, /sv04/satzung.php, etc, damit fährst du am besten.
Hi,
Verweise nie auf index.xy. Solltest du oder dein Nachfolger irgendwann mal in die Versuchung kommen, die Seitentechnik zu wechseln, müssten die URLs im Web geändert werden. Natürlich ist das kein Weltuntergang, aber du hast andersherum auch keinerlei Vorteile von /index.xy gegenüber /, also wozu das elendige /index.xy verwenden, wenn's auch kürzer und eindeutiger geht.
Du hast recht. Es ist allerdings so, das ich nur in einer einzigen Datei aus index.php z.B. index.jsp machen müßte. Deshalb lager ich ja alles aus, damit ich mien komplettes Layout über 1,2 Dateien verändern kann, ohne 500-Seiten duchackern zu müssen.
Da hat dir jemand einen Bären aufgebunden (oder nicht einmal ansatzweise eine Ahnung, wovon er spricht). Auf dem Webserver kommen überhaupt keine relativen Pfade an, sondern ausschließlich Anweisungen in der Form "GET /pfad/zum/objekt HTTP/1.x".
Und die "Last", die den Web_browser_ "belastet", der aus den relativen Pfaden im HTML-Code absolute Pfade bastelt, dürfte vernachlässigbar sein (und das ist eigentlich noch übertrieben).
Ich hatte mich da etwas blöde ausgedrückt. Was ich meinte ist eigentlich was anderes. Jede http-Eingabe wird doch ersteinmal an den DNS geschickt. Bei relativen Pfaden wäre das genauso?
Ich würde jetzt einfach behaupten, das die Webseite schneller reagiert mit relativen Pfaden als mit absoluten. So wie ich das jetzt nach Euren Beiträgen verstehe, ist es völlig schnurz ob absolut oder relativ. Jeder klick auf einen Link liefert letztendlich einen absoluten Pfad der dann an den Webserver geht. Verstehe ich Dich da richtig? Ich verkürze also mit relativen Pfaden weder die Reaktionszeit noch sonstirgendwas.
Verwende /, /sv04/satzung.php, etc, damit fährst du am besten.
Du meinst /./sv04/satzung.php. Dein Komma hat mich etwas irritiert :o)
Das geht dann erst, wenn die Seite komplett umgestellt ist. Danke für den Tipp.
Gruß
Viktor
Hallo,
Verwende /, /sv04/satzung.php, etc, damit fährst du am besten.
Du meinst /./sv04/satzung.php. Dein Komma hat mich etwas irritiert :o)
nein, er meinte "/" bzw. "/sv04/satzung.php", je nachdem, welche Ressource du adressieren willst. Das Komma trennt hier Elemente einer Aufzählung. ;-)
Ciao,
Martin
Hi Martin,
noch ein Frage hätte ich. Folgende Verzeichnisstruktur:
--grafik
|_ grafik.gif
|_ hallo.php
--verz01
|__verz02
|_ test.php
Wenn ich jetzt in test.php die grafik.gif einbinde, dann genügt als Pfad
<img src="/grafik/grafik.gif">.
Wenn ich aber in test.php die Datei hallo.php einbinden möchte dann funktioniert das so nicht. Dann muß ich
... inlcude ('../../hallo.php')... schreiben.
Warum geht dort nicht auch
... inlcude ('/grafik/hallo.php')...
Hast Du da eine Erklärung für mich?
Gruß
Viktor
Hi Viktor,
--grafik
|_ grafik.gif
|_ hallo.php--verz01
|__verz02
|_ test.phpWenn ich jetzt in test.php die grafik.gif einbinde, dann genügt als Pfad
<img src="/grafik/grafik.gif">.
ja, richtig.
Wenn ich aber in test.php die Datei hallo.php einbinden möchte dann funktioniert das so nicht. Dann muß ich
... inlcude ('../../hallo.php')... schreiben.
Warum geht dort nicht auch
... inlcude ('/grafik/hallo.php')...
Hast Du da eine Erklärung für mich?
Ja, hab' ich. :-)
PHP greift seine Daten nicht übers HTTP-Protokoll vom Webserver ab, sondern direkt über das Filesystem des jeweiligen Rechners. Und im Filesystem der Server-Maschine liegt deine Web-Präsenz bestimmt nicht im Root-Verzeichnis, sondern möglicherweise unter
/www/kunden/viktor-x.de/html/ (nur als Besipiel)
Verwechsle daher nicht die beiden Welten. Was aus HTTP-Sicht im Root der Domain liegt, kann physisch auf dem Server ganz woanders liegen. Und nur das interessiert PHP, weil es direkt auf dem Server ausgeführt wird.
So long,
Martin
Hi Martin,
mal eine allerletzte blöde Frage, dann bist Du erlöst :o)
Unter Windows gibt es sog. Verknüpfungen. Soweit ich weiß, läuft die Webseite auf Linux. Unter Linux gibt es doch auch Datei/Verzeichnislinks, die ich im Dateisystem setzen könnte. Könnte ich nicht in jedes Verzeichnis einen Link auf die benötigte Datei machen? Könnte sowas funktionieren? Dann müßte ich bei einer Änderung der Verzeichnisstruktur nur diese "Verknüpfungen" anpassen.
Gruß und einen schönen Abend
Viktor