Server Side Includes Problem <!--#include ...
Sebastian
- sonstiges
0 Sönke Tesch0 Sebastian0 Sönke Tesch
0 Jojo
Hallo zusammen,
habe mich vor einigen Tagen schon mal ( http://forum.de.selfhtml.org:81/archiv/2002/10/25902/) zu SSI erkundigt und auch gute Antworten bekommen.
Nach einigem Weiterbilden und Basteln habe ich nun das Problem, dass der Inhalt, den ich gerne per SSI in meine html-Seite einbauen möchte, nicht eingefügt wird.
Konkret:
Diese Datei (bitte keine Kommentare zu nicht-konformem html - ist die Kurzform!)
* * * * * * * * * * * *
<html>
<head>
</head>
<body>
<table border="0" width="763" cellpadding="0" cellspacing="0">
<tr>
<!-- NAVIGATIONSLEISTE PER SSI -->
<td valign="top" width="160">
<img src="http://www.glowik.de/bilder/blank.gif" width="1" height="25" border="0"><br>
<!--#include virtual="/includes/nav.shtml"-->
<br>
</td>
<!-- restliche Spalten -->
<td>
</td>
<td>
</td>
</tr>
</table>
</body>
</html>
* * * * * * * * * * * *
referenziert die im Unterverzeichnis includes liegende Datei nav.shtml, die so aussieht
* * * * * * * * * * * *
<table width="143" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="20" valign="bottom" align="left"> <a href="#">Home</a></td>
</tr>
<tr>
<td height="20" valign="bottom" align="left"> <a href="#">Anmeldung</a></td>
</tr>
<!-- undsoweiter -->
</table>
</body>
</html>
* * * * * * * * * * * *
Kann mir jemand sagen, warum das nicht funktioniert? Bin an des Lateiners Ende :-/ und glaube, alles nach bestem Wissen richtig gemacht zu haben....
Dank im Voraus -
Sebastian
<!--#include virtual="/includes/nav.shtml"-->
referenziert die im Unterverzeichnis includes liegende Datei nav.shtml, die so aussieht
Bei /includes/nav.shtml liegt nav.shtml zwar im Verzeichnis includes, aber falls Du meinst, mit /includes ein Unterverzeichnis der aktuellen Datei anzusprechen, bist Du auf dem Holzweg; / ist das alleroberste Oberverzeichnis des Systems. Du möchtest wahrscheinlich lieber includes/nav.shtml haben.
Gruß,
soenk.e
Hallo soenk.e
Bei /includes/nav.shtml liegt nav.shtml zwar im Verzeichnis includes, aber falls Du meinst, mit /includes ein Unterverzeichnis der aktuellen Datei anzusprechen, bist Du auf dem Holzweg; / ist das alleroberste Oberverzeichnis des Systems. Du möchtest wahrscheinlich lieber includes/nav.shtml haben.
Danke dafür. Habe es nun einmal ohne / probiert und danach mit dem korrekten Serverpfad. Leider wird immer noch nichts eingefügt. Any ideas?
Sebastian
/ ist das alleroberste Oberverzeichnis des Systems.
Muss mich da korrigieren: / kennzeichnet das Wurzelverzeichnis des Webservers. Der angebenene Pfad entspricht also der URL, die man im Browser eingeben würde, um die jeweilige Datei zu erreichen. Liegt Deine Datei beispielsweise in /home/xyz/test/test.html und der Webserver startet in /home/xyz (sprich: http://server.de/ zeigt auf /home/xyz), dann würde <!--#include virtual="/" --> /home/xyz/ bedeuten.
Danke dafür. Habe es nun einmal ohne / probiert und danach mit dem korrekten Serverpfad. Leider wird immer noch nichts eingefügt. Any ideas?
Wirf mal einen Blick in die Fehlerliste Deines Servers (Apache: error_log). Wenn der Server die einzufügende Datei nicht findet, sollte dort ein genauerer Hinweis auftauchen. Ist da nichts zu sehen, könnte der include-Befehl falsch sein (und nicht erkannt werden) oder der Dateiinhalt ist zwar da, wird aber nicht angezeigt (HTML-Syntax).
Gruß,
soenk.e
Muss mich da korrigieren: / kennzeichnet das Wurzelverzeichnis des Webservers.
Ok - funktioniert aber trotzdem nicht...
Wirf mal einen Blick in die Fehlerliste Deines Servers (Apache: error_log).
Komm ich leider nicht dran :-/
Ist da nichts zu sehen, könnte der include-Befehl falsch sein
der ist aus den von dir vorgeschlagenen Dokus abgepinnt - müsste also korrekt sein.
oder der Dateiinhalt ist zwar da, wird aber nicht angezeigt
Wenn ich nicht über <!--#include gehe, sondern den im ersten Posting dargestellten Dateiinhalt direkt eingebe, wird's ja auch angezeigt. Korrekt müsste es alo sein. Was ich allerdings nicht gefunden habe: Wie muss die "zu includende" .shtml konkret aussehen? Muss sie auch über einen Header verfügen?
Danke -
Sebastian
Wirf mal einen Blick in die Fehlerliste Deines Servers (Apache: error_log).
Komm ich leider nicht dran :-/
Keine access_- und error_log? Pfui :)
Ist da nichts zu sehen, könnte der include-Befehl falsch sein
der ist aus den von dir vorgeschlagenen Dokus abgepinnt - müsste also korrekt sein.
Hast Du das Leerzeichen am Ende mit drin, wie Jojo in <?m=145598&t=26694> geschrieben hat?
oder der Dateiinhalt ist zwar da, wird aber nicht angezeigt
Wenn ich nicht über <!--#include gehe, sondern den im ersten Posting dargestellten Dateiinhalt direkt eingebe, wird's ja auch angezeigt. Korrekt müsste es alo sein.
In der Tat.
Was ich allerdings nicht gefunden habe: Wie muss die "zu includende" .shtml konkret aussehen? Muss sie auch über einen Header verfügen?
Nein, nicht nötig. Es muß übrigens auch keine .shtml-Datei sein, die eingefügt wird. Probier auch einfach mal .html oder .txt.
Letzte Vermutung: Funktioniert nur include nicht oder funktioniert möglicherweise überhaupt kein SSI? Probier mal die anderen Befehle, <!--#printenv --> zum Beispiel.
Wenn allerdings SSI nicht aktiv wäre, müssten die SSI-Befehle in der Seite auftauchen.. Aber das weder die Befehle auftauchen noch etwas ausgeführt wird, ist schon reichlich mysteriös.
Kann man sich Quelltext und Ergebnis irgendwo ansehen?
Gruß,
soenk.e
Hallo,
<!--#include virtual="/includes/nav.shtml"-->
Soweit ich mich erinnere, muss vor dem abschließenden Kommentartag --> ein Leerzeichen stehen, damit dieser nicht als Teil des SSI-Befehls interpretiert wird.
Also:
<!--#include virtual="/includes/nav.shtml" -->
Gruss Jojo