Lokale Dateien referenzieren (aus Webseiten heraus)

  • Der Firefox weigert sich beharrlich, lokal referenzierte Dateien zu laden.
    Wie muß der Aufruf aussehen, damit es funktioniert?
    Probiert habe ich unter anderem folgendes (im Beispiel der Aufruf einer lokalen CSS-Datei):

    <link rel="stylesheet" href="file://e:/test.css" type="text/css">
    <link rel="stylesheet" href="file:///e:test.css" type="text/css">
    <link rel="stylesheet" href="file://e:\test.css" type="text/css">
    <link rel="stylesheet" href="file://e|test.css" type="text/css">
    <link rel="stylesheet" href="e|test.css" type="text/css">
    <link rel="stylesheet" href="e:test.css" type="text/css">

    Das Komische ist, daß Der Firefox bei der Eingabe obiger Pfade direkt in die URL recht tolerant reagiert: Ein fehlender Slash beim Protokoll wird ergänzt, ein vorhandener Root-Slash wird ebenso akzeptiert wie ein fehlender und sowohl der Doppelpunkt als auch die Pipe nach dem Laufwerksbuchstaben wird akzeptiert. Die Datei wird dann im Browserfenster angezeigt.

    Warum also funktioniert sowas wie file:///e:/test.css in der URL, aber nicht als Referenz im Sourcecode :?:

  • Hi,

    warum willst Du denn auf lokale Daten durch eine 'absolute' URI referenzieren? Spätestens beim Hochladen ins Web würden da auch alle anderen Browser nichts mehr finden. (Ich nehme an, die Sache läuft im IExplorer bei Dir?)
    Gib doch lieber gleich einen relativen Pfad an, also wenn Deine HTML-Seite bei Dir beispielsweise auf e:/xyz liegt, dann im Sinne von
    <code><link rel="stylesheet" href="../test.css" type="text/css"></code>
    Das funktioniert dann auch, wenn Du Deine HTML-Seiten beispielsweise auf eine CD brennen willst (Laufwerk e in Deinem Beispiel sieht sehr danach aus).

    Aber dessen ungeachtet, ich glaube nicht, daß das eine Frage für dieses Board ist, geht es doch mehr um HTML als um Firefox.

    Grüße,

    Martin

    Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7) Gecko/20040614 Firefox/0.9

  • Für "webseiten und plugins" gibt es ein unterboard hier. da werden auch solche fragen beantwortet. Einer der Moderatoren wird den thead vermutlich noch dahin umziehen.

    Zur frage. Ich könnte mir vorstellen, dass das sicherheitsgründe sind, die das verhindern. css-files sind ja plain-text-files. wenn man diese dateien von der platte aus includen könnte, könnte man sie auch per js auslesen und an einen server schicken.

    Versuch mal grafikdateien (.png. .gif, .jpg) einzubauen. Wenn das geht (was es sollte. gibt browserspiele, wo man "lokale grafiken" benutzen kann), tippe ich auf sicherheitsgründe.

    Richtig müsste es heissen "file:///X:/ordner/file.endung"

  • Nein, das ist schon richtig hier, es geht mir weder um eine HTML-Frage, noch um bestimmte Webseiten.

    Die lokale Referenzierung hat den Hintergrund, daß ich mit dem Proxomitron (einem Tool, daß als Proxy fungiert und Webseiten nach freien Regeln umschreiben kann) mir die in der Seite referenzierten Stylesheets durch lokale Aufrufe ersetze. Das mache ich, wenn ich zum Beispiel Seiten regelmäßig besuche, aber das Layout nicht mag (Schriftarten, Farben, etc; gutes Beispiel ist die fiese gelbe Farbe bei http://www.drweb.de). :D

    Im IE funktioniert das, ich möchte den IE aber gar nicht mehr benutzen. Der Firefox arbeite auch gut mit Proxomitron zusammen (warum auch nicht, dem ist es egal, wem er die Daten gibt), aber Firefox kann mit lokalen Aufrufen nichts anfangen und findet die lokalen Dateien nicht. Daher die Frage.

    Wie meinst Du das, Gafikdateien einbauen? Wenn ich diese lokal referenzieren möchte, stehe ich doch vor der gleichen Frage wie bei den Stylesheets...

  • Mit dem Security-Verdacht hast Du sicher recht. In meiner Javascript-Console steht

    Zitat

    "Security Error: Content at http://www.drweb.de/verwaltung/index.shtml may not load or link to file:///e:/test.css."

    Nur: was hat das eigentlich dort verloren? Mit Javascript hat das ja nun wirklich nichts zu tun.:?

    Zitat

    kannst du deinen proxy nicht auch per ip ansteuern? So marke
    http://192.168.0.2/dawomeinproxyliegt/meinfile.css


    *VorDieStirnPatsch* :P
    Ja klar, hatte ich noch gar nicht dran gedacht.
    Beim Proxomitron geht das mit http://file//E|/test.css.

    Cooler Workaround, klappt hervorragend. Merci.

  • Mozilla ist sehr eigen, was das verküpfen von unterschiedlichen Seiten angeht.

    z.B. ist es zwar möglich über frames hinweg mit js zu arbeiten, aber ein js kann selbst dann nur auf seite der selben domain zugreifen.

    Alles sicherheitsrelevate dinge und da gibts sich Mozilla auch richtig viel mühe, wenns um Sicherheit geht. ; )

    Das der Workaround geht freut mich. Hin und wieder kommt sogar mir ein Geistesblitz.