Peter: Firefox lädt kein Remote CSS-File, wenn Doctype angegeben

Hi,
der Firefox lädt bei mir keine Remote-CSS-Files. Reduziert auf das Wesentliche, tritt das Problem sowohl bei einer Datei mit XHTML-Doctype auf

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
<link rel="stylesheet" type="text/css" href="http://www.example.org/css/test.css" media="all" />
</head>
<body>
TEST
</body>
</html>

als auch bei einer mit normalem HTML-DOC-Type. Die CSS-Datei hat nur folgenden Inhalt:

body{
  background-color: red;
}

Sobald ich den Doc-Type weglasse, funktioniert es und die Seite wird rot. Im IE funktioniert es immer.

Wo liegt hier denn das Problem? Es tritt nebem dem aktuellsten FF 2.0.x auch im FF 1.0 auf.

Vielen Dank und viele Grüße,
Peter

  1. Tach,

    Wo liegt hier denn das Problem?

    die CSS-Datei wird vermutlich mit einem falschen Content-Type ausgeliefert, richtig wäre text/css. Einstellen mußt du das am ausliefernden Webserver.

    mfg
    Woodfighter

    1. die CSS-Datei wird vermutlich mit einem falschen Content-Type ausgeliefert, richtig wäre text/css. Einstellen mußt du das am ausliefernden Webserver.

      Danke für Deinen Tipp, ich bin schon ein Stück weiter. Auf folgende Weise funktioniert es:

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <title>Autodesk</title>
      <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
      <link rel="stylesheet" type="text/css" href="http://www.autodesknews.de/autodesk_template_2007/css/css.php" media="all" />
      </head>
      <body>
      TEST
      </body>
      </html>

      Und die "CSS"-PHP-Datei:

      <?php
      header("Content-Type:text/css");
      ?>
      body{
      background-color: red;
      }

      Ohne Doctype funktioniert es wohl, weil der Browser nicht so streng ist? Dann muss ich wohl am Server schrauben, obwohl das ja einer der ersten Defaults sein sollte...

      Liebe Grüße

      1. Tach,

        die CSS-Datei wird vermutlich mit einem falschen Content-Type ausgeliefert, richtig wäre text/css. Einstellen mußt du das am ausliefernden Webserver.

        Ohne Doctype funktioniert es wohl, weil der Browser nicht so streng ist?

        genau, der sogennante Quirks-Modus.

        Dann muss ich wohl am Server schrauben, obwohl das ja einer der ersten Defaults sein sollte...

        Ja, darf ich fragen, welcher Webserver derartig komische Einstellungen hat?

        mfg
        Woodfighter

        1. Ja, darf ich fragen, welcher Webserver derartig komische Einstellungen hat?

          Ja das frage ich mich auch gerade ;-) Aber zum Glück lässt sich da was machen, aber selbst hab ich das zum Glück nicht verbrochen. Hab es grad nochmal auf einem anderen Server versucht, da geht es einwandfrei. Du hast also den goldenen Tipp gehabt, 1000 Dank!

        2. Hi!

          Ja, darf ich fragen, welcher Webserver derartig komische Einstellungen hat?

          Wieso? Was ist daran denn so komisch?

          <link rel="stylesheet" type="text/css" href="http://www.autodesknews.de/autodesk_template_2007/css/css.php" media="all" />

          Du rufst eine PHP-Datei auf und keine Datei mit der Endung ".css".
          Woher soll der Webserver denn wissen, daß er den Output einer PHP-Datei als text/css ausliefern soll?
          Du kannst mit PHP ja alles mögliche erstellen. Standardmäßig wird der Content-Type text/html genommen, wenn du nichts angibst.
          Im Normalfall wird PHP nun mal zur Ausgabe von HTML-Code genutzt.
          Wenn du jetzt mit PHP aber ein JPEG, ein PDF oder halt eine CSS-Datei erzeugst, dann mußt du mit der Funktion header() den richtigen Content-Type ausgeben.
          Das ist also keine "derartig komische Einstellung" des Webservers, sondern genau das, was man eigentlich erwarten sollte.

          Schöner Gruß,
          rob

          1. Tach,

            Du rufst eine PHP-Datei auf und keine Datei mit der Endung ".css".

            im Erstpost war es eine CSS-Datei, Peter hat dann mit PHP den Fehler des Servers ausgebügelt.

            mfg
            Woodfighter