外部css文件加载但未应用

时间:2010-10-03 15:32:19

标签: css

Wetware错误

这是一个错字 - 有两个不同的css文件,名称相似,我链接到一个网站上,另一个链接到另一个网站

来自布偶的道歉:(

我在html head部分中有以下行:

<link rel="stylesheet" href="http://files.hypernumbers.com/redesign/frontpage.css">

当我从域hypernumbers.com查看此页面时,它会正常加载然后应用。

但是,当我查看来自域hypernumbers.dev的同一页面时,它会加载(Firebug和Chrome工具会向我显示CSS文件存在),但它不会应用于页面

是否存在某些我不了解的域优先/子域事件?

更新

在Opera中尝试过它,hypernumbers.comhypernumbers.dev无法加载......

2 个答案:

答案 0 :(得分:15)

这是一个非常古老的问题,但由于它是Google的最佳结果,我将把我的解决方案放在这里。

我遇到了同样的问题,我的CSS文件可以访问并且正在被浏览器下载,但它们实际上并没有被应用。我可以手动浏览CSS,但Firefox和Chrome都没有应用它们。

这是我的链接标记:

<link href="/static/css/bootstrap.css" rel="stylesheet" type="text/css">

看起来很好,这是正确的路径......我甚至记得设置类型,但没有骰子。

事实证明,我的网络服务器正在强制CSS文件的内容类型为application/octet-stream。因此,即使我在链接标记中指定了type,Firefox和Chrome也会从服务器中看到错误的内容类型,并拒绝应用样式表。

如果您使用安装了Firebug的Firefox,则可以在“网络”标签上看到您的服务器发送的内容类型。

在我的情况下,使用Lighttpd,修复是将".css" => "text/css"添加到mimetypes.assign,如下所示:

mimetype.assign     = ( ".html" => "text/html",
                        ".txt" => "text/plain",
                        ".jpg" => "image/jpeg",
                        ".png" => "image/png",
                        ".css" => "text/css",
                        "" => "application/octet-stream" )

希望这可以节省几个小时的谷歌搜索和搔痒的人。

答案 1 :(得分:1)

这可能是一个疯狂的猜测,但如果你添加属性type="text/css"那会有什么不同吗?另外,CSS文件和html文档的编码是什么?

作为最后一项检查,您是否考虑过下载文件并制作本地副本?只是为了确保您的网络和导致问题的Hypernumbers之间没有任何内容?