Guillermo: Frage zum base-Element

Hallo,

Vielleicht ist meine Frage für manche hier schon fast zu leicht. Ich bin mir im Umgang mit dem base-Element aber unsicher!

In selfthtml habe ich gelesen, dass man das base-Element verwendet, um Fehler bei relativen Pfaden zu vermeiden.

Kann ich das Element aber auch verwenden, um beispielsweise prinzipiell Grafiken, Stylesheets etc. von einer anderen Domäne zu verwenden? Ist das sogar genau die Aufgabe von base oder geht es nur um "Fehlervermeidung im Zweifelsfall"?

Z. B.:
Datei index.html liegt auf Server www.Server1.de
Meine Grafiken liegen alle im Hauptverzeichnis von www.Server2.de

Kann ich nun ins base-Element von index.html auf Server1 den Eintrag "http://www.Server2.de/" schreiben und er verwendet dann die Grafiken von dort?

Gibt es Probleme mit einzelnen gebräuchlichen Navigatoren? Geht es um alle Dateien, also auch um JavaScripte, Stylesheets, Objekte etc.?

Grüße
Guillermo

  1. Hallo Guillermo,

    Kann ich nun ins base-Element von index.html auf Server1 den Eintrag "http://www.Server2.de/" schreiben und er verwendet dann die Grafiken von dort?

    Wenn Du ein Dokument über http://www.example.com/1.html abrufst und dort <base href="http://www.example.org/2.html"> drin steht, dann verhält sich ein Browser bei _allen_ relativen Pfaden so, als ob das Dokument von der Adresse, die im href-Attribut des base-Elements angegeben worden ist, geladen worden wäre.

    Nachdem das Attribut schon seit HTML 3.2 existiert (laut SELFHTML) denke ich nicht, dass es Probleme mit der Browserkompabilität gibt; ich habe es zwar nie ausgiebig gestestet, aber immer, wenn ich damit zu tun hatte, hat es funktioniert.

    Viele Grüße,
    Christian

    1. Hallo!

      Wenn Du ein Dokument über http://www.example.com/1.html abrufst und dort <base href="http://www.example.org/2.html"> drin steht, dann verhält sich ein Browser bei _allen_ relativen Pfaden so, als ob das Dokument von der Adresse, die im href-Attribut des base-Elements angegeben worden ist, geladen worden wäre.

      Ausnahme ist <meta http-equiv="refresh" content="5; URL= ... ">
      Hier solltest Du keine relativen Pfade angeben, aber das ist ja auch nicht HTML im eigentlichen Sinn.

      tschüs, jürgen

    2. Ich benutze es häufiger in Vorlagen (allerdings ausschließlich mit Grafiken, die auf dem "eigenen" Server liegen), weil man so nicht jedes Mal x Pfade (Navigation, Grafiken, StyleSheets, JS-Dateien, relative Links etc.) ändern muß, wenn eine Seite in ein anderes Verzeichnis geschoben wird als die Vorlage liegt. Das einzige Problem, das ich kenne, sind Verweise innerhalb der Seite: einige Browser kommen dann mit einem <a href="#bla"> nicht mehr klar und man muß explizit <a href="datei.html#bla"> notieren.

      Simon

  2. Hallo,

    Datei index.html liegt auf Server www.Server1.de
    Meine Grafiken liegen alle im Hauptverzeichnis von www.Server2.de

    Ein indirektes potenzielles Problem ist unabhängig von der Verwendung des base-Elements, dass einige Browser und vermutlich auch Proxies keine Grafiken von anderen Domains (meines Wissens vornehmlich second level domains) annehmen, sodass es unmöglich wäre, in einem Dokument mit der URL http://www.example.org/ das Bild http://www.example.com/bla.png einzubinden. Somit wäre dein Beispielszenario eventuell heikel. Gecko hat beispielsweise einen solchen zuschaltbaren Filter.

    Grüße,
    Mathias

    1. Hallo,

      Somit wäre dein Beispielszenario eventuell heikel. Gecko hat beispielsweise einen solchen zuschaltbaren Filter.

      ...der meineswissens zur Vermeidung von Werbung und MOLs dient. Das Problem besteht unabhängig von der Verwendung von <base> immer, wenn die Grafiken woanders liegen.

      tschüs, jürgen

    2. Ein indirektes potenzielles Problem ist unabhängig von der Verwendung des base-Elements, dass einige Browser und vermutlich auch Proxies keine Grafiken von anderen Domains (meines Wissens vornehmlich second level domains) annehmen, sodass es unmöglich wäre, in einem Dokument mit der URL http://www.example.org/ das Bild http://www.example.com/bla.png einzubinden.

      Ist diese Gefahr nicht vernachlässigbar klein? Normalerweise sollten sich Grafiken von anderen Domänen doch prinzipiell einbinden lassen, oder? Das widerspräche ja sonst jeder html-Logik.

      1. Hallo Guillermo,

        Ein indirektes potenzielles Problem ist unabhängig von der Verwendung des base-Elements, dass einige Browser und vermutlich auch Proxies keine Grafiken von anderen Domains (meines Wissens vornehmlich second level domains) annehmen, sodass es unmöglich wäre, in einem Dokument mit der URL http://www.example.org/ das Bild http://www.example.com/bla.png einzubinden.

        Ist diese Gefahr nicht vernachlässigbar klein?

        Mir ist keine Möglichkeit bekannt, diese »Gefahr« überhaupt einschätzen zu können bzw. es existieren keine halbwegs empirischen Daten und können vermutlich auch nicht existieren, insofern kann dir wohl niemand diese Frage mit hinreichender Sicherheit beantworten. Wenn du es nach Möglichkeit vermeiden kannst, Grafiken über verschiedene Hosts zu verteilen, tu dies, ansonsten musst du in den sauren Apfel beißen.

        Normalerweise sollten sich Grafiken von anderen Domänen doch prinzipiell einbinden lassen, oder? Das widerspräche ja sonst jeder html-Logik.

        Prinzipiell ja, praktisch wird damit aber Missbrauch betrieben, beispielsweise sind die meisten eingebundenen Objekte von externen Servern Werbebanner und sog. Webbugs, oder jemand will Traffic/Bandbreite sparen und »hotlinkt« anstatt eine lokale Kopie anzubieten. Daher kommen serverseitige Referrer-Sperren und die beschriebenen clientseitigen Filter.

        Grüße,
        Mathias

        --
        Ein Mensch ist mehr als (.*[a-zA-Zäöü]{2,}.*_.*[a-zA-Z]{2,}.*_+<.*\w.*@{1}\w+.*.[a-zA-Z]{2,4}>)|(\w+@{1}\w+.*.[a-zA-Z]{2,4}_+(.*[a-zA-Zäöüäöü]{2,}.*_.*[a-zA-Zäöü]{2,}.*)) erfassen kann.
        1. Okay,

          Wenn ich nun aber das base-Element verwende und auf Grafiken vom Server verzichte auf der sich auch die Datei befindet, die das base-Element enthält, also ich ausschließlich Grafiken (etc.) vom anderen Server verwende, den ich mit base als Standard angegeben habe, dann sollte es doch auch auf Gecko und so keine Probleme geben oder habe ich da jetzt einen Denkfehler?

          Grüße
          Guillermo

  3. Gibt es Probleme mit einzelnen gebräuchlichen Navigatoren?

    Ich hab es mal in allen Navigatoren geprüft, die ich so habe:

    In der Datei www.server1.de/index.html habe ich

    <base src="http://www.server2/" />

    in den head geschrieben.

    Im body habe ich dann <img src="grafik.png" alt="" /> aufgerufen, wobei es die Datei www.server1.de/grafik.png nicht, wohl aber die Datei www.server2.de/grafik.png gab.

    Sie wurde auf all meinen Navigatoren (Windows: Opera5/IE5/NE4.7, Linux: Konq3.1.0/Mozilla1.0.1/Opera6.03) richtig angezeigt. Scheint also wirklich zu klappen! Toll!

    Grüße
    Guillermo