Hallo Andreas,
ich fasse mal das bereits gesagte ausführlich zusammen.
wie kann ich den Inhalt einer HTML-Seite auf mehrere Dateien verteilen?
Theoretisch sollte es funktionieren. Der beigefügte Sourcecode läßt sich
problemlos ausführen.
(Wahrscheinlich im Internet Explorer, der sehr fehlertolerant ist?)
Ich halte es für besser, die HTML-Seite als fertige Seite zu entwickeln,
so daß der Quellcode, der hinterher beim Besucher ankommen will ein richtiges
Ganzes ergibt. Das heißt: Keine Abschnitte, die jeweils in einzelne <html>-
Elemente eingefasst werden. Pro HTML-Seite gibt es nur ein html-Element.
Dann wird das ganze auf einzelne Textdateien aufgestückelt und dort nichts
zusätzliches eingefügt. Zum Beispiel so:
-- kopf.txt ----------------------
<html>
<head>
<title>Seitentitel</title>
</head>
<body>
<h1>Noch eine Überschrift</h1>
----------------------------------
-- inhalt.txt --------------------
<p>Bla Bla Bla</p>
<p>Noch mehr Bla</p>
----------------------------------
-- fuss.txt ----------------------
<p>Verantwortlich:
Erika Mustermann</p>
</body>
</html>
----------------------------------
Wie Du siehst, wenn Du Dir die Einteilung in verschiedene Dateien weg denkst,
ist das eine komplette, halbwegs richtige HTML-Seite. Die damit keinerlei
Probleme in den Browsern verursacht, wenn sie wieder zusammengefügt vom
Server an den Browser gesandt wird.
(Obiges Beispiel würde noch nicht validieren, d.h. wenn sie auf Richtigkeit
des HTML-Codes überprüft wird, würde eine Fehlermeldung geschmissen. Man
sollte aber nur richtigen Code senden. Hier liegt es am fehlenden Doctype,
den Dokumententyp. Für mehr Information siehe SELFHTML, bzw. Marcs Tip.)
Nur wie werden die Abschnitte auf die Dateien verteilt bzw. so verbunden
das sie gemeinschaftlich angezeigt werden können?
Das Zauberwort hier heißt »Includes«. Wenn Du danach mit der SELF-Suche
(http://suche.de.selfhtml.org/) im Archiv dieses Forum suchen
würdest, dürftest Du massig an Material dazu finden.
Ich fasse das hier nur mal kurz zusammen:
Es gibt drei Möglichkeiten, diese Einzeldateien wieder zusammenzusetzen.
-
Automatisch vom Editor. Viele Texteditoren, in denen man die HTML-Seite
schreibt, bieten die Möglichkeit Includes zu definieren. Bevor man die
Seite dann auf den Server lädt, führt man einen wie auch immer gearteten
Befehl im Editor aus und dieser fügt automatisch an den richtigen Stellen
in den HTML-Dateien die ausgelagerten Teile ein. Der Editor Phase V kann
das zum Beispiel sehr gut. -
Automatisch auf dem Server in dem Moment vor dem Senden der Daten. Das
kann auf unterschiedliche Weise passieren, in irgendeiner Programmiersprache
(Perl, PHP, whatever) oder zum Beispiel in den Server Side Includes, die
ich gleich vorstellen werde. Der Webserver setzt die Seite aus den
einzelnen Textdateien zusammen und sendet sie dann als komplette Seite. -
Im Browser des Benutzers. Dies setzt Frames voraus. Da Frames auch immer
mit der Gestalt der Seite interagieren, lasse ich das hier außer acht.
Zu den Server Side Includes, wie auch schon von willie ([pref:t=85275&m=501772])
vorgeschlagen:
Diese sind ein Mittel, einen Hauch von Interaktivität in die Webseite zu
bringen, beispielsweise die aktuelle Uhrzeit vom Server auslesen und mit
in der Seite an den Browser auszuliefern. Für mehr Möglichkeiten siehe
http://de.selfhtml.org/cgiperl/intro/ssi.htm
Uns interessiert hier der SSI-Befehl »include«. Dieser ersetzt an den
Stellen, wo dieser Befehl auftaucht, diesen durch den Text in der dort
angegeben Textdatei. Das heißt, wir bräuchten von eine vierte Datei, in
der die SSI-Befehle auftauchen:
-- index.html --------------------
<!--#include virtual="/kopf.txt" -->
<!--#include virtual="/inhalt.txt" -->
<!--#include virtual="/fuss.txt" -->
----------------------------------
Die Befehle werden hier mit den Inhalt der jeweiligen Textdateien ersetzt.
Das heißt, daß was beim Aussenden der index.html sich darin befindet, ist
genau die obige, vorher zerstückelte HTML-Seite. Und nein, man darf auch
ruhig noch HTML-Code in die index.html schreiben. Beispielsweise so:
-- index.html --------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<!--#include virtual="/kopf.txt" -->
<!--#include virtual="/inhalt.txt" -->
<p>Bla Bla Bla</p>
<!--#include virtual="/fuss.txt" -->
----------------------------------
Das, was jetzt unter index.html erreichbar wäre, wäre ein komplettes
HTML-Dokument, das inzwischen auch validiert, weil der Doctype dabei ist.
Tim
Ich wollte einfach mal ein Posting in dem »für Dummies«-Stil schreiben.
Pardon. ;o)