2009-05-09 5 views
4

Ich erhalte einen seltsamen Syntaxfehler in Firefox 3.0.10/Leopard, wenn die folgenden HTML/CSS mit:Firefox 3 Syntaxfehler mit externem CSS

foo.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 

<html lang="en"> 
<head> 
    <link rel="stylesheet" href="foo.css"/> 
</head> 
<body> 
Foo 
</body> 
</html> 

foo.css:

div { 
    color: #FF0000; 
} 

und die Fehler, die ich in der Konsole ist:

Error: syntax error 
Source File: file://path/to/foo.css 
Line: 1, Column: 1 
Source Code: 
div { 

Es ist nicht das CSS, da es in den Körper eines Inline-STYLE-Tags einfügen funktioniert gut. Es ist nicht das Link-Tag, da das HREF auf die CSS-Datei des Stack-Überlaufs keinen Fehler anzeigt. Fühlt sich an wie ein Firefox-Bug, aber ich kann keine Dokumentation darüber finden. Ist dies ein bekanntes Problem, und gibt es eine Problemumgehung? Es macht es schwer zu debuggen oder zu validieren.

Danke.

+2

FWIW, das ist nicht gültig HTML, aber ich bekomme diesen Firefox-Fehler in Firefox 3.0.9 nicht. Versuchen Sie, alle Erweiterungen zu deaktivieren. –

+0

Das ist ein seltsames. Funktioniert es, wenn Sie den Stackoverflow css lokal platzieren? – Andrew

+0

Matthew Flaschen hat es geschafft. Die YSlow-Erweiterung scheint das Problem zu verursachen. Gut für zukünftige Referenz zu wissen. –

Antwort

1

Die Antwort stellte sich als "Deaktivieren von Erweiterungen (es war YSlow)", wie in den Kommentaren vorgeschlagen.

0

Wurde die Datei unter Windows geschrieben? Vielleicht müssen Sie den Wagenrücklauf/die neue Zeile zu Mac OS x neu formatieren. Versuchen Sie, die Datei über DOS2UNIX in der Befehlszeile auszuführen. Könnte auch eine bom sein, die du nicht siehst.

+0

nein - geschrieben in TextMate. Versucht, mit Zeilenenden sowieso vergebens zu täuschen. –

0

Meine Vermutung ist, dass ein verstecktes Zeichen versehentlich in der Datei gespeichert wurde. Versuchen Sie, die CSS-Datei erneut zu speichern, oder geben Sie die erste Zeile erneut ein und speichern Sie sie erneut.

+0

Versucht dies auch. alles sorgfältig abgetippt, immer noch den Fehler bekommen. Und immer noch kein Fehler beim Ausschneiden und Einfügen in ein Skript-Tag, was ich erwarten würde, wenn ich Sonderzeichen aufheben würde. (die Zeilennummer bedeutet nichts, ich entdeckte - es meldet immer 1/1 für eine externe CSS-Datei, egal welche Zeile der eigentliche Fehler ist) –

1

Es gibt Ihnen den Fehler auf das erste Zeichen in der Datei, die ein 'd' ist, die Dinge wie "versteckte" Sonderzeichen für mich ausschließt. Ich nehme an, dass Firefox die Datei aus irgendeinem Grund nicht lokal öffnen kann oder dass die Datei versehentlich mit einer Codierung gespeichert wurde, die, obwohl sie im Dialogfeld gut angezeigt wird, nicht ordnungsgemäß analysiert wird. Vielleicht wird es versehentlich als Unicode gespeichert?

Wenn Sie uns mit der eigentlichen Datei verknüpfen könnten, würde es helfen, da Ihre Syntax (trotz der Markup nicht genau gültig, aber ich glaube nicht, dass es das ist) perfekt in der .css-Datei ist.

+0

apphacker scheint mich bis zum Schlag geschlagen zu haben: klingt wie der Unicode-bom ist, was ist verursacht es. –

0

Wenn Sie von Google hier sind und mit lokalem HTML arbeiten, beachten Sie, dass Firefox Anfragen für externe CSS blockiert, die das file:// Protokoll verwenden, da es sich um eine herkunftsübergreifende Anfrage handelt.

Eine schnelle Lösung besteht darin, das Verzeichnis, das Ihre Site enthält, an localhost über http:// zu liefern. Wenn Sie den Python-Interpreter installiert haben, können Sie dies tun, sehr leicht:

python3 -m http.server 8080 

Dann Zugang localhost über Ihren Browser:

firefox localhost:8080 

Sie 8080 mit jedem anderen Port ersetzen kann.