Stefan: anderes HTML-File ale Header/Footer beim Laden einfügen lassen?

Hallo Leute,

ich bin gerade dabei, für meinen Club eine neue Homapage zu entwerfen. Nun bin ich bei einem anderen Web-Projekt auf eine Idee gestoßen, die ich selber gerne verwendet hätte.

Struktur sollte sein:
Die ganze Tabellenstruktur wie Überschrift, Index, Fußzeile sollen in Vorlage-Dateien liegen. Diese Dateien nannte man Header und Footer.

Wie bekommen ich nun den Browser des betrachters dazu, das er zuerst vom Server die Header.html liesst, anzeigt. Danach den Dateiinhalt liesst und Anzeigt, und danach die Footer.html liesst und Anzeigt. Das ganze sollte für den Betrachter als eine Datei erscheinen.

Folgende Struktur habe ich aus SelfHTML, aber das ist irgendwie nicht erfolgreich:

<!--#include virtual="header.html"-->

[hier die Seitenspezifischen Daten]

<!--#include virtual="footer.html"-->

Das wär super hätte einer von euch eine Idee parat!

danke, viele grüße
Stefan

  1. Hi,

    Folgende Struktur habe ich aus SelfHTML, aber das ist irgendwie nicht erfolgreich:

    <!--#include virtual="header.html"-->

    [hier die Seitenspezifischen Daten]

    <!--#include virtual="footer.html"-->

    Der Ansatz ist durchaus korrekt. Allerdings muss der Webserver, auf dem Deine Seiten gespeichert sind, SSI - Server Side Includes - unterstützen.

    Zudem werden bei den meisten Webservern nur die Dateien durch den SSI-Parser geschickt, die als Dateiendung NICHT .html sondern .shtml haben.

    Probier das mal und informiere dich, ob Dein Provider SSI unterstützt

    Viele Grüße...

    Alex :)

    1. Hallo Georg und Alexander,

      danke für die superschnelle Antwort!

      Der Ansatz ist durchaus korrekt. Allerdings muss der Webserver, auf dem Deine Seiten gespeichert sind, SSI - Server Side Includes - unterstützen.

      Danke, schön das wenigstens der Ansatz korrekt ist. Ich weis noch nicht genau, was der Server, auf dem das mal liegen wird, unterstützt. Ich nehme jedoch an, das es nicht CGI/PHP/MySQL oder auch SSI sein wird.

      Ist es möglich, das auch ohne die Servererweiterungen hinzubekommen, sozusagen nur in HTML und nur auf dem Browser des Anwenders?
      CSS funktioniert ja auch so.

      viele grüße
      Stefan

      1. Hi,

        Ist es möglich, das auch ohne die Servererweiterungen hinzubekommen, sozusagen nur in HTML und nur auf dem Browser des Anwenders?
        CSS funktioniert ja auch so.

        Tja, einen direkten Weg im Browser selbst gibt es nicht.
        Was Du jedoch machen kannst und Deinen Vorstellungen am nächsten kommt ist, den HTMLEditor von Ulli Meybohm zu nutzen. Er unterstützt sog. includes. Mit den includes kannst Du Deine Footer und Header erstellen, die Du auf jeder Seite einfach einbauen kannst. Änderst Du jedoch eine Footer oder Header-Datei, musst Du die Aktualisierung jedoch manuell ausführen und anschließend wieder alle Dateien neu auf dem Server übertragen.

        Für weitere Infos schau mal im Archiv und unter http://www.meybohm.de nach.

        Viele Grüße...

        Alex :)

      2. Hallo Stefan!

        Ist es möglich, das auch ohne die Servererweiterungen hinzubekommen, sozusagen nur in HTML und nur auf dem Browser des Anwenders?

        Dazu fällt mir eigentlich nur Javascript ein. Wenn Du Deine einzubindenden 'Texte', also den HTML-Quellcode als Javascript-Variable in eine externen .js-Datei speicherst, so kannst Du sie als externes Javscript einbinden. Der Header und der Footer müssten dann per document.write() vom Javascript geschrieben werden.

        Grüße Georg

        1. Hi,

          Dazu fällt mir eigentlich nur Javascript ein.

          Diese Lösung ist mir an sich auch eingefallen, allerdings habe ich sie nicht geschrieben, da zu viele gute Gründe gegen diese Lösung sprechen.

          Was ist denn, wenn jemand kein JS aktiviert hat? Der bekommt _garkeine_ Seite zu Gesicht. Das kann es beim besten Willen nicht sein. Dann lieber etwas mehr Arbeit beim Uploaden und eine Lösung verwenden, die immer klappt.

          Viele Grüße...

          Alex :)

          1. Was ist denn, wenn jemand kein JS aktiviert hat? Der bekommt _garkeine_ Seite zu Gesicht. Das kann es beim besten Willen nicht sein. Dann lieber etwas mehr Arbeit beim Uploaden und eine Lösung verwenden, die immer klappt.

            genau deswegen ist die Lösung zwar gut, aber nicht praktikabel. Ich bin einer der Kandidaten, die erstmal nix zu sehen bekommen, da ich hier alles abgeschaltet habe. Ist zwar im moment IE, man sieht mich aber auch mit Konqueror, Netscape, Opera durch die Gegend surfen :)

            gruß, danke
            Stefan

          2. Hallo Alexander!

            Was ist denn, wenn jemand kein JS aktiviert hat? Der bekommt _garkeine_ Seite zu Gesicht. Das kann es beim besten Willen nicht sein. Dann lieber etwas mehr Arbeit beim Uploaden und eine Lösung verwenden, die immer klappt.

            Klar, ohne zusätzlichen Aufwand geht´s natürlich nicht. Grundsätzlich knn man ja dafür sorgen, dass nur Besucher mit aktiviertem JS die entsprechende Seite zu sehen bekommen (OK. da wäre auch noch die Suchmaschinen-Problematik...). Ich sehe das eventuelle 'nichtaktiviert-sein' von JS eigentlich weniger als Totschlag-Argument denn als Herausforderung. Was wäre denn Deiner Meinung nach die Alternative zu JS?

            Grüße Georg

            1. Hi,

              Klar, ohne zusätzlichen Aufwand geht´s natürlich nicht.

              Ich meinte nicht, dass man JS nicht wegen dem Mehr-Aufwand nutzen sollte, sondern vielmehr, weil ein paar User, die JS nicht aktiviert haben, nichts sehen.

              Um auch diese Leute zu erreichen, müsste ich dann ja noch eine JS-lose Version erstellen, und dann ist der Aufwand in der tat doppelt so hoch.

              Grundsätzlich knn man ja dafür sorgen, dass nur Besucher mit aktiviertem JS die entsprechende Seite zu sehen bekommen (OK. da wäre auch noch die Suchmaschinen-Problematik...)

              OK, aber die Problematik bleibt ja, dass ein paar User ohne JS aussen vor bleiben. Das muss ja nicht sein...

              Ich sehe das eventuelle 'nichtaktiviert-sein' von JS eigentlich weniger als Totschlag-Argument denn als Herausforderung. Was wäre denn Deiner Meinung nach die Alternative zu JS?

              Nun Herausforderung? Ich denke, dass es ohne herheblichen Mehraufwand (und die heißt JS-Version und JS-lose-Version erstellen) keine Lösung mit JS gibt.

              Und wenn ich mir schon die Arbeit mache und eine JS-lose-Version erstelle, kann ich die JS-Version ja drirekt weglassen ;)

              Meine 'Alternative' zu JS würde ein System sein, dass die Aufgabe von SSI lokal auf meinem Rechner erledigt. Also lokal meine Seiten mit Header und Foooter "füllt". Und das macht u.a. das include-System vom HTMLEditor. OK, der Mehraufwand beim Hochladen, der entsteht, wenn ich den Header oder Footer ändere, bleibt natürlich bestehen. Aber das ist der Kompromiss, den ich eingehen muss, wenn ich keine Serverseitigen Techniken nutzen kann.

              Viele Grüße...

              Alex :)

        2. Hallo ihr beiden,

          Dazu fällt mir eigentlich nur Javascript ein. Wenn Du Deine einzubindenden 'Texte', also den HTML-Quellcode als Javascript-

          Alles klar, dann weis ich jetzt, das ich nicht zu dämlich zum Suchen war. Hab' mir schon sorgen gemacht :)

          Ich werde das dann doch nicht so lösen, sonden HTML-Vorlagen nutzen, die die anderen dann nehmen sollen, um ihre Inhalte einzubringen.

          Vielen dank nochmal für die Hilfe!

          gruß
          Stefan

  2. Hallo Stefan,

    was Du da nutzen möchtest sind Serverside Includes (SSI). Das muss Dein Provider anbieten und je nach Konfiguration der Webservers muss die Ausführung von SSI im Verzeichnis erlaubt werden sowie die Datei eine entsprechende Dateierweiterung (meist .shtml) besitzen.

    Folgende Struktur habe ich aus SelfHTML, aber das ist irgendwie nicht erfolgreich:

    <!--#include virtual="header.html"-->

    [hier die Seitenspezifischen Daten]

    <!--#include virtual="footer.html"-->

    ^
    Dann sollte dieses ----+

    auch funktionieren.

    Gruß Georg