Firefox lädt css Datei nicht

  • Hallo an alle hier im Forum,

    bei mir ist folgendes Problem aufgetreten, und ich weis nicht mehr weiter:

    Bei dynamisch generierten Seiten wird im FF die css Datei nicht geladen.
    Sobald ich allerdings auf view css bzw. edit css gehe wird die Seite mit css angezeigt!?! Wenn ich das wieder verlasse wieder ohne.

    Das css wird über den Tag <link rel="stylesheet" type="text/css" href="../layout/style_gross.css"> eingebunden.

    Im IE und Opera gibt es keine Probleme. Auch wenn ich den generierten HTML-Code als statische html-Datei in das cgi-bin Verzeichnis abspeichere und aufrufe funktioniert es einwandfrei. Ich habe schon versucht den absoluten Pfad anzugeben, aber auch keinen Erfolg im FF.
    HTML und CSS sind validiert.

    Vielen Dank für Eure Hilfe

    Grüße aus BB Horschio

  • Hallo Horschio,

    damit der Firefox CSS-Dateien auch einbindet, muss der MIME-Typ der CSS-Datei auch stimmen.
    Wenn du z.B. mit PHP eine CSS-Datei dynamisch erstellst, so kriegt sie default den MIME text/html.

    Bei PHP kann man mit diesem Code in der ersten Zeile das Problem lösen:

    Code
    header("Content-Type: text/html; charset=iso-8859-1")


    Bei anderen Programmiersprachen dürfte es ähnlich funktionieren.

    Gruß, Eckhart

  • Hallo Eckhart,

    danke schon mal. Ich glaube aber nicht das das, das Problem ist.

    Die css Datei wird nämlich nicht dynamisch erstelllt, nur die Html-Seite.
    Das css liegt unter dem localhost im layout Verzeichnis und wird dann einfach als statische externe css-Datei im html-code eingebunden.

    Falls es weiterhilft: Die html Dateien wird mit einem Delphi-Script erzeugt.
    Ungewöhnlich aber die Hauptanwendung verlangt das so.

    MfG

  • Nein leider nicht,

    ist nur auf meinem localen "Delphi"-Webserver.
    Habe gerade geschaut und auch dort ist als charset
    FSmtp.CharSet := 'iso-8859-1'; angegeben.

    Die Dateistruktur ist so aufgebaut:

    css-Datei: WWWRoot/layout/style_gross.css
    script: WWWRoot/cgi-bin/script.exe (sendet die generierte html-Seite)

    Mein html-code bis zum einbinden:

    HTML
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    <html>
    <head>
    <title>Webserver</title>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    <link rel="stylesheet" type="text/css" href="../layout/style_gross.css">
    <link rel="shortcut icon" href="../images/favicon.ico">
    </head>

    Wie gesagt beim IE und Opera gibt es keine Probleme. Genauso wenn ich den gleichen html ode als statische Seite lade. Nur wenn der html-code vom Script kommt spinnt der FF.

    Bilder u.s.w werden vom gleichen Verzeichnis mit der gleichen Pfadangeabe auch geladen, nur das css nicht.

    Witziger weise, kommt aber das css und die html Seite schaltet dann auf "mit css um" sobald ich im FF in der Web Developer Bar auf css view oder editieren gehe. Alles sehr seltsam.

    Danke, MfG

  • Hallo Horschio,

    Zitat von Horschio

    css-Datei: WWWRoot/layout/style_gross.css
    script: WWWRoot/cgi-bin/script.exe (sendet die generierte html-Seite)

    Mein html-code bis zum einbinden:

    Code
    <link rel="stylesheet" type="text/css" href="../layout/style_gross.css">

    Wie gesagt beim IE und Opera gibt es keine Probleme.

    ich wette, der IE und der Opera machen es beide falsch. :D

    Der Grund dürfte folgender sein: Das cgi-bin-Verzeichnis ist kein normales Verzeichnis. Es schützt hauptsächlich die Scripte vor Betrachten.
    Normalerweise wird ein Skript ins cgi-bin-Verzeichnis gemappt.

    Ich vermute, wenn du deinen Link durch den hier ersetzt:

    Code
    <link rel="stylesheet" type="text/css" href="layout/style_gross.css">


    geht es.

    Gruß, Eckhart

  • Hi Eckhart,

    Nein geht leider immer noch nicht.
    Jetzt geht es sogar in allen Browsern nicht!
    Das mit den Pfaden habe ich auch schon alles durchprobiert.
    Das mit dem mappen ins cgi-bin ist bei mir hier auch so.

    Sehe ich es falsch wenn ich sage, dass der Browser sich erst das css läd, wenn er zum interpretieren des <link rel="stylesheet" - Tags kommt.
    Von dem her müßte es doch vollkommen egal sein ob der Html Code durch ein Script oder als statische Seite zum Browser kommt?
    Das css wird nämlich ja nur nicht geladen, wenn der html-code durch das Delphi Script zum Browser kommt.

    Mittags Grüße

  • Zitat von Horschio

    Das css wird nämlich ja nur nicht geladen, wenn der html-code durch das Delphi Script zum Browser kommt.


    Ok. Ich bezeifle das es daran liegt, aber schonmal versucht die Adresse zur css-datei absolut zu gestalten? http://lalal.de/dings.css ?

    Ansonsten zwei andere Ideen... wenn du einen DocType angegeben hast, entferne den mal zu testzwecken.

    Ansonsten mal versuche es so einzubinden:

    Code
    <style type="text/css" media="all">
       @import "styles/styles.css";
      </style>
  • Hi bugcatcher,

    Super!!! Der Doctype ist es, weg genommen und schon funktioniert es!!!!
    Habe es noch versucht mit einer anderen Doctype Definition zu arbeiten aber noch keine funktionierende gefunden.

    Ist dies ein FF bug(catcher)??

    Gib es einen Doctype den ich benutzen kann??

    Vielen Dank und MfG
    Horschio

  • Frag mich was leichteres. Ich hab schon so manches komisches Verhalten durch die Angabe von DocTypes gehabt. Aber da Mozilla im Gegensatz zum IE oder anderen Browsern den DocType auch wirklich interpretiert, glaub ich schon, dass das Verhalten von den Entwicklern geplant war.

    In der regel reicht es die dtd-Adresse aus dem DocType zu streichen. Ist dann immernoch Valide und funktioniert auch mit Mozilla.

    Code
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


    -->

    Code
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">

    Richtig begründen kann ich das Verhalten aber nicht.

    Hast du mal versucht die style-dateien über den @-befehl einzubinden?

  • Vielen Dank für diesen Tip!

    Ich ärgere mich schon seit Tagen, weil ich es nicht schaffe, eine valide Seite im Firefox anzeigen zu lassen. Ich war sogar schon so weit, dass ich auf die "schöne Anzeige" für Firefoxuser verzichten wollte!
    Das war das erste Mal, dass Firefox bei nicht validem Code funktioniert hat, der IE nicht, bzw. andersrum bei gültigem Code.
    Endlich happy!

  • Also ich habe noch ein bißchen rumprobiert:

    1. DTD Adresse streichen reicht nicht aus. Der ganze Doctype muß weg
    2. mit @import funktioniert es zwar auch im IE und Opera aber nicht im FF
    3. Wenn der Doctype weggelassen wird hat der IE kleine Probleme mit der Darstellung. Mein Haupt <div> zentriert sich nicht mehr. Aber im FF und im Opera tut es so wie es soll.

    Alles sehr seltsam!!!

    Gruß Horschio

  • Wenn man die DTD-Angabe weglässt, rendert Firefox im Quirks-Modus. Also als ob es keine Standard-Seite wäre. Eigendlich sollte die DTD-Angabe aber drin stehen. Nur da IE und co das nicht interpretiert, aber der Firefox schon, kommt es dann zu einer unterschiedlichen anzeige.

    Aber mehr könnte ich nur sagen, wenn ich die seite komplett zu sehen bekomme. Je nachdem kann es auch zu unterscheiden kommen, wenn der webserver für eine seite einen "falsche" MimeType überliefert.... was weiss ich...

  • Würd mir das gerne ansehen
    HTML-Code rauskopieren und das ganze bitteschön auf irgendeinen von aussen erreichbaren Host -> ZIP-Archiv machbar ?

    Unabhängig davon in der Webdeveloper-Toolbar mal unter "Information" -> "View Response Headers" auswählen und das Ergebniss hier posten.

    Bin mir ziemlich sicher dass es nicht an Firefox liegt und das auch mit der Doctype gegen muss

    Normal ist der MSIE der Kandidat bei dem man die Doctype-Zeile besser weg und ihn machen lässt wie er glaubt (Zuckt sonst manchaml bei Framesets mit horizontalen Scrollbalken aus wo es gar nichts zu scrollen gibt)

    LG aus Österreich

    Linux nb-rhsoft 2.6.25.6-27.fc8 #1 SMP Fri Jun 13 16:38:52

    Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9) Gecko/2008061712 Fedora/3.0-1.fc9 Firefox/3.0

    http://www.rhsoft.net/

  • Habe Heute Vormittag noch mal nen bißchen rumprobiert und festgestellt das in der JavaScript Konsole des FF folgende Meldung auftaucht:

    Code
    Fehler: Der Stylesheet http://localhost/layout/style_gross.css wurde nicht geladen, weil sein MIME-Typ, "application/binary", nicht "text/css" ist.

    Der Quelltext im html head sieh so aus:

    HTML
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
         "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>Webserver</title>
    <link rel="stylesheet" type="text/css" href="../layout/style_gross.css">
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    </head>

    Wie gesagt wird der DOCTYPE weggelassen funktioniert es einwandfrei im FF. Allerdings kann der IE dann die css Formatierungen nicht mehr richtig darstellen.

    Und noch die View Response Headers:
    Content-Type: text/html
    Content-Length: 9263

    Gruß Horschio

    Code
  • Hallo Horschio,

    Zitat von Horschio

    Habe Heute Vormittag noch mal nen bißchen rumprobiert und festgestellt das in der JavaScript Konsole des FF folgende Meldung auftaucht:

    Code
    Fehler: Der Stylesheet http://localhost/layout/style_gross.css wurde nicht geladen, weil sein MIME-Typ, "application/binary", nicht "text/css" ist.

    :D Dann habe ich doch recht gehabt, der MIME-Typ von der CSS-Datei stimmt nicht.

    Gruß, Eckhart

  • Hallo Horschio,

    Zitat von Horschio

    sieht wohl echt so aus, aber was kann ich jetzt tun, dass es überall funktoniert?

    wenn du einen Apache hast, hast du 2 Möglichkeiten:

    1. In der Apache-Konfiguration gibt es die Datei mime.types. Dort trägt man folgende Zeile ein: AddType text/css .css
    Dann speichert man die Datei und startet Apache neu.
    2. Oder aber man legt in dem Verzeichnis, in dem die CSS-Datei ist, eine Datei namens .htaccess an, und schreibt da rein: AddType text/css .css

    Gruß, Eckhart

  • Hi,

    leider habe ich hier im Geschäft keinen Apache sondern irgendeinen
    in Delphi programmierten Webserver wo auch diese Webanwendung drauf läuft.

    Gibt es keine Lösung, mit welcher ich durch valides HTML zum Ziel komme?

    Ansonsten baue ich halt noch eine Browserweiche in meinem script ein,
    die dann entweder den Doctype mit hinschreibt oder auch nicht.
    Ist wahrscheinlich am einfachsten so.

    Grüßle

  • Hallo Horschio,

    Zitat von Horschio

    leider habe ich hier im Geschäft keinen Apache sondern irgendeinen
    in Delphi programmierten Webserver wo auch diese Webanwendung drauf läuft.

    Gibt es keine Lösung, mit welcher ich durch valides HTML zum Ziel komme?

    kommt auf den Webserver an. Wäre schon viel gewonnen, wenn man den Namen des Webservers wüsste.

    Gruß, Eckhart