Stylesheet kann nicht geladen werden

exomo

NGBler
Registriert
1 Aug. 2015
Beiträge
129
Hallo ngb,

ich habe ein kleines Problem mit meinem lokalen Apache server, glaube ich zumindest. Das Problem ist ziemlich komisch und ich weiß nicht mehr weiter, ich hoffe mir kann jemand helfen.

Also folgendes:
- Ich habe eine simple HTML-Seite, die eine CSS Datei über <link> einbindet.
- Die Seite ist HTML5 mit <!DOCTYPE html>
- Das ganze wird über einen lokal installierten Apache server auf localhost bereitgestellt.
- Wenn ich die Seite mit dem Browser aufrufe (FF, IE, Edge, egal was) wird das Stylesheet nicht geladen. ( )

Wenn ich die Seite direkt im Firefox öffne (z.B. D:\...\test2.html, also nicht über den Apache) dann wird das Stylesheet korrekt geladen.
Ich habe die Testseiten auch auf meinen Webspace geladen, da funktionieren sie ebenfalls. Deshalb vermute ich dass es an meinem lokalen Webserver liegt, ich habe aber keine Ahnung woran das liegen könnte. Hat da jemand eine Idee ob das ein Konfigurationsfehler sein kann oder was sonst?

Das Problem ist nicht vorhanden, wenn ich die DOCTYPE Zeile weglasse, ich will aber schon dass mein Apache auch mit korrekten HTML5 Dateien klar kommt.

Es gibt noch ein weiteres interessantes Detail, das ich beim Ausprobieren festgestellt habe: Wenn ich ein zweites Stylesheet einbinde, auch wenn die Referenz ungültig ist, dann wird das erste im Firefox geladen, im IE/Edge aber auch nicht.

Hier sind die beiden Seiten, die erste mit ungültigem zweitem Stylesheet und die zweite ohne.


Wie gesagt funktioniert es aber hier alles wie gedacht, also der Hintergrund ist blau. Die selben Seiten bei mir lokal sind aber nicht blau.

Vielen Dank schon mal für alle brauchbaren Hinweise.
 
Dein HTML sieht zumindest mal gültig aus. Evtl. könntest du noch ein type-Attribut einfügen:
[src=html5]<link rel="stylesheet" href="test.css" type="text/css">[/src]

Ansonsten wäre es interessant zu wissen, was Apache antwortet wenn er nach dem Stylesheet gefragt wird. Dazu kannst du in Firefox die Javascript-Konsole öffnen (Strg+Shift+K), und links unter "Netz" einen Haken bei "Log" setzen. Wenn du die Seite jetzt neu lädst, siehst du sämtliche HTTP-Anfragen (also wahrscheinlich genau 2), inklusive der Antwort vom Server (bspw. "200 OK" oder "404 Not Found"). Ein Klick darauf zeigt dir die genaue Anfrage (inkl. Anwort).
Vielleicht kannst du damit auf die Ursache schließen.
 
  • Thread Starter Thread Starter
  • #3
Danke dir vielmals.
Das type="text/css" hatte ich ursprünglich mit dabei, aber zum Testen dann auch mal entfernt, das macht keinen Unterschied. In der Javascript-Konsole habe ich in die Netwerklogs geschaut (die bei mir übrigens im ganz rechten Tab sind und auch kein Log-Haken vorhanden ist) steht "200 OK" für die beiden Dateien. Ich konnte die css Datei auch im Browser anzeigen, alles kein Problem.
Aber die Konsole hat mich letztlich doch auf die richtige Fährte gebracht. Und zwar stand da auch "Stylesheet wurde nicht geladen, weil sein MIME-Typ, "text/html", nicht "text/css" ist." Ich habe mir dann nochmal meine Konfiguration angeschaut und bin auf die folgende Zeile gestoßen: "ForceType application/x-httpd-php" Dadurch werden alle Dateien mit Content-Type: text/html übertragen, was natürlich Blödsinn ist. Scheinbar gibt es bei HTML5 strengere Regeln wann ein Stylesheet geladen werden darf, die Konfiguration war "schon immer" so bei mir, aber vorher hat das den Browser nicht interessiert was da für ein Mime-Type ist. Ich habe die ForceType Zeile entfernt und jetzt funktioniert es.
 
Scheinbar gibt es bei HTML5 strengere Regeln wann ein Stylesheet geladen werden darf,
das wäre mir neu. HTML5 ist Arschlecken pur, das akzeptiert jeden erdenklichen Scheissdreck. (Und ja, das ist zum Kotzen)
Ich bezweifle, dass Du unter XHTML oder HTML ein besseres Ergebnis hattest. (Wobei ich grad nich aufm Schirm hab, was da ein transitional (oder gar "Quirks") geworfen hat) Strict zumindest sollte meines Erachtens die selben und mehr Fehler geworfen haben als dieses Larifari-machmichnichtnass-HTML5.
 
  • Thread Starter Thread Starter
  • #5
dexter, du hast natürlich recht. Mit HTML4 doctypes (transitional oder strict) wird das Stylesheet auch nicht geladen, nur wenn ich gar keinen angebe. Im Quirksmode geht wohl alles, sobald man behauptet das Dokument wäre Standardkonform kann ich auch nur Stylesheets laden die text/css als mime haben.

Auch wenn es jetzt ein bisschen Off-Topic wird: Was hast du denn gegen HTML5? Ich kenne mich nicht so wirklich aus mit den Unterschieden bei den Versionen.
 
dexter, du hast natürlich recht. Mit HTML4 doctypes (transitional oder strict) wird das Stylesheet auch nicht geladen, nur wenn ich gar keinen angebe. Im Quirksmode geht wohl alles, sobald man behauptet das Dokument wäre Standardkonform kann ich auch nur Stylesheets laden die text/css als mime haben.
Das Problem ist also gelöst?

Was hast du denn gegen HTML5? Ich kenne mich nicht so wirklich aus mit den Unterschieden bei den Versionen.
So genau kann ich das gar nicht sagen, sind mehrere vollkommen unabhängige Punkte. Geht beim doctype los, der keine Version mehr hat. Zu deutsch: ein HTML5-fähiger Browser stellt diverse Dinge nicht korrekt dar, obwohl er HTML5-fähig ist (bzw. zu einer bestimmten "Version" und Zeit zu 100% war)
Des Weiteren wurden diverse Dinge aus bisherigen (X)HTML-versionen ohne Not aufgeweicht. Bin da aber etwas zu lang raus, um da konkrete Beispiele zu bringen.
 
  • Thread Starter Thread Starter
  • #7
Ok, danke.
Ja das Problem ist gelöst. Wenn man den Server nicht dazu zwingt einen falschen Mime-Type für alles zu verwenden gibt es keine Probleme.
 
Zurück
Oben