外部css出现Firefox 3语法错误

外部css出现Firefox 3语法错误,css,firefox,syntax-error,firefox-3,Css,Firefox,Syntax Error,Firefox 3,在使用以下html/css时,Firefox 3.0.10/Leopard中出现了一个奇怪的语法错误: 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.c

在使用以下html/css时,Firefox 3.0.10/Leopard中出现了一个奇怪的语法错误:

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>
我在控制台中得到的错误是:

Error: syntax error
Source File: file://path/to/foo.css
Line: 1, Column: 1
Source Code:
div {
这不是CSS,因为将其粘贴到内联样式标记的主体中效果很好。 这不是link标记,因为将HREF指向stack overflow的css文件不会给出错误。 感觉像是Firefox的bug,但我找不到任何关于它的文档。 这是一个已知的问题,是否有解决方法?这使得调试或验证变得困难


谢谢。

文件是在windows上写的吗?也许您需要将回车/换行重新格式化为mac os x。尝试在命令行上通过类似dos2unix的方式运行该文件。也可能是您没有看到的字符。

我猜文件中可能意外保存了一些隐藏字符。请尝试重新保存CSS文件,或者重新键入第一行,然后重新保存。

它会在文件中的第一个字符上显示错误,即“d”,这会排除像“隐藏”特殊字符之类的内容。我猜firefox由于任何原因都无法在本地打开该文件,或者该文件是意外使用一种编码保存的,尽管它在对话框中显示良好,但无法正常解析。可能是因为错误而保存为Unicode


如果您能将我们链接到实际的文件,这会有所帮助,因为您的语法(尽管标记不完全有效,但我认为不是这样)在您粘贴的.css文件中是完美的。

答案是“关闭扩展名(它是YSlow)”正如评论中所建议的那样。

如果您来自谷歌并使用本地html,请注意Firefox会阻止使用
文件://
协议的外部CSS请求,因为从技术上讲,这是一个跨源请求

一个快速修复方法是通过
http://
将包含站点的目录提供给localhost。如果安装了python解释器,则可以非常轻松地执行此操作:

python3 -m http.server 8080
然后通过浏览器访问本地主机:

firefox localhost:8080

您可以用任何其他端口替换
8080

FWIW,这不是有效的HTML,但我在Firefox 3.0.9中没有发现Firefox错误。尝试禁用所有扩展。这是一个非常复杂的扩展。如果你将stackoverflow css放在本地,它会工作吗?Matthew Flaschen知道了。YSlow扩展似乎是问题的根源。很好,以备将来参考。不-用TextMate编写。不管怎样,我试过用行尾来愚弄你,但没有用。我也试过这个。仔细地重新键入,仍然得到错误。当我将它剪切并粘贴到脚本标记中时,仍然没有错误,如果我选择特殊的字符,我会想到这一点。(行号没有任何意义,我发现-它总是报告外部css文件的1/1,无论实际错误在哪一行)apphacker似乎已经击败了我:听起来好像是Unicode bom导致了它。
firefox localhost:8080