loewe: gleiches Menü für Seiten in verschiedenen Ordnern

Hallo,

Ich verwende Templates (Begriff aus Dreamweaver) um Änderungen in meinem Menü auf alle Seiten zu übertragen. Das Menü steht ganz normal in jeder einzelnen HTML-Datei (kein Frame, iFrame, javascript, etc).
Solange alle HTML-Dateien in einem Ordner liegen funktioniert diese Technik sehr gut, da alle links relativ angegeben werden können.

Für ein größeres Projekt würde ich gerne die selbe Technik verwenden, meine HTML-Dateien aber in schiedene Unterordner verteilen. Damit das funktioniert müsste ich absolute Links verwenden, was ich aber gerne vermeiden möchte.

Mein erster Lösungsansatz war auf jeder Seite eine "relative" Base-Adresse anzugeben (<base href="../../" />) und die relativen Links dann vom root-Ordner aus zu verlinken.
Opera interpretiert das so, wie ich mir das vorgestellt habe. Alle anderen Browser die ich getestet habe ignorieren das Base-Tag allerdings solange keine absolute Adresse angegeben wurde.

Eine weitere Idee wäre das Menü in ein Frame zu setzen. Ich möchte aber nicht, dass es 'ortsfest' ist, sonder dass es mitscrollt.

Die einzigen Techniken die ich einsetzen möchte sind HTML und CSS.
Dreamweaver vertraue ich bei der Verwaltung der Links nicht. Deshalb wäre mir eine andere Möglichkeit sehr recht.

Ist so etwas möglich; wurde die Frage schon gestellt und beantwortet (ich bin überhinweise dankbar)?
Trotz langer Suche habe ich bisher keine Antwort finden können

mit freundlichen Grüßen
Löwe

PS: sollte ich mich unklar ausgedrückt haben, dann bitte ich um Rückmeldung. Ich versuche es dann erneut ;)

  1. @@loewe:

    Für ein größeres Projekt würde ich gerne die selbe Technik verwenden, meine HTML-Dateien aber in schiedene Unterordner verteilen. Damit das funktioniert müsste ich absolute Links verwenden, was ich aber gerne vermeiden möchte.

    Warum? Was spräche denn dagegen?

    Es muss ja nicht "http://example.net/foo/bar" sein; "/foo/bar" genügt ja. [http://de.selfhtml.org/html/allgemein/referenzieren.htm#absolut@title=SELFHTML]

    Eine weitere Idee wäre das Menü in ein Frame zu setzen.

    Pfui!

    Ich möchte aber nicht, dass es 'ortsfest' ist, sonder dass es mitscrollt.

    Nutzer möchten Frames noch aus ganz anderen Gründen nicht.

    Die einzigen Techniken die ich einsetzen möchte sind HTML und CSS.

    Dann bleiben dir absolute Pfadangaben (wenn du keine serverseitigen Techniken einsetzen möchtest).

    Live long and prosper,
    Gunnar

    --
    „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
    1. Hallo Gunnar,
      Vielen Dank für deine schnelle Antwort.

      @@loewe:

      »»» Für ein größeres Projekt würde ich gerne die selbe Technik verwenden, meine HTML-Dateien aber in schiedene Unterordner verteilen. Damit das funktioniert müsste ich absolute Links verwenden, was ich aber gerne vermeiden möchte.

      Warum? Was spräche denn dagegen?

      Es muss ja nicht "http://example.net/foo/bar" sein; "/foo/bar" genügt ja. [http://de.selfhtml.org/html/allgemein/referenzieren.htm#absolut@title=SELFHTML]

      Ich habe das Gefühl, daß du mein Problem nicht ganz verstanden hast, bzw. ich mich falsch oder unvollständig ausgedrückt habe:

      Der Quellcode meines Menüs soll auf allen Seiten unverändert stehen. z.B.:
      <div class="menu">
      <a href="./unterseite1.html>zur ersten unterseite </a>
      </div>

      wenn ich jetzt dieses Menü aber in einer Datei verwende, die einen Ordner tiefer liegt (meinetwegen im ordner foo) dann müsste ich als link "../unterseite1.html" angeben. Dann würde aber der link in der index.html (die nicht im ordner foo liegt) aber den gleichen Quellcode enthält nicht funktionieren.

      Wenn ich dich richtig verstanden habe bleibt mir nichts anderes übrig als mir eine andere Lösungsstrategie auszudenken.

      Vielen Dank
      und mit freundlichen Grüße
      Löwe

      1. @@loewe:

        Ich habe das Gefühl, daß du mein Problem nicht ganz verstanden hast,

        Dein Gefühl trügt.

        Der Quellcode meines Menüs soll auf allen Seiten unverändert stehen. z.B.:
        <div class="menu">
        <a href="./unterseite1.html>zur ersten unterseite </a>
        </div>

        Nochmal die Frage: Warum??

        Was spricht gegen

        <div class="menu">  
        <a href="/unterseite1.html>zur ersten unterseite </a>  
        </div>
        

        Außer dem Umstand, dass das Menü furchbar gerne eine Liste wäre; bitte bitte lass es doch eine Liste sein*:

        <ul class="menu">  
          <li><a href="/unterseite1.html>zur ersten unterseite </a></li>  
        </ul>
        

        Live long and prosper,
        Gunnar

        * frei nach wahsaga.

        --
        „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
        1. Hallo Gunnar,

          Der Quelltext war mehr oder weniger frei erfunden und sollte nur verdeutlichen, daß ich genau den Codeblock auf allen Seiten einsetzen möchte.
          Zur Frage "warum":
          Mein Menü wird sich hin und wieder ändern (neue Einträge, etc). Um allen Seiten die Änderungen auf einen Achlag "mitzuteilen" verwende ich zur Zeit die template-Funktion in Dreamweaver: man kan auf den "erbenden" Seiten nur bestimmte Bereiche ändern. Ändert sich außerhalb dieser variablen Bereiche etwas im Template wird es automatisch auf allen erbenden Seiten ebenfalls geändert.
          Ich erspare mir damit alle xyz Dateien per Hand anzupassen. Sollte es hier bessere Varianten geben, die mir wieder erlauben würden mit einem einfachen Texteditor zu arbeiten bin ich ebenfalls offen für Änderungen. Aber das nur am Rande.
          Durch die Templates habe ich halt das Problem, daß auf allen Seiten der gleiche Quellcode steht (für das Menü).

          Gegen
          <ul class="menu">
            <li><a href="/unterseite1.html>zur ersten unterseite </a></li>
          </ul>
          spricht also, daß das nur für Dateien in einem Ordner funktioniert.
          denn eine seite in dem order foo würde versuchen die datei /foo/unterseite1.html zu finden. Aus der index.html im root-verzeichnis würde die Seite /unterseite1.html aufgerufen werden.

          Viele Grüße
          Löwe

          1. Gegen
            <ul class="menu">
              <li><a href="/unterseite1.html>zur ersten unterseite </a></li>
            </ul>
            spricht also, daß das nur für Dateien in einem Ordner funktioniert.
            denn eine seite in dem order foo würde versuchen die datei /foo/unterseite1.html zu finden. Aus der index.html im root-verzeichnis würde die Seite /unterseite1.html aufgerufen werden.

            nein der slash davor kennzeichnet das ding als absolut

            egal ob das ding in example.com/foo/bar/baz.html oder /foo/bar.html liegt /example.html wird egal wo immer auf example.com/example.html verlinken

            1. nein der slash davor kennzeichnet das ding als absolut

              egal ob das ding in example.com/foo/bar/baz.html oder /foo/bar.html liegt /example.html wird egal wo immer auf example.com/example.html verlinken

              Hallo suit,

              das "Detail" ist mir entgangen.
              Ich entschuldige mich vielmals für meine Unaufmerksamkeit.
              Vielen Dank für den Hinweis.

              mit freundlichen Grüßen
              Löwe