<link type="text/css" media="all" rel="stylesheet" href="./foo.css.txt" />
Firbug错误
未加载样式表foo.css.txt,因为其MIME类型“text / plain”不是“text / css”。
的说明
浏览器将CSS解释为文本文档而不是CSS,尽管有任何努力通过浏览器强制它的MIME。当然,在制作中我将使用foo.css
(没有txt扩展名),但我认为这是可能的。它适用于JavaScript:
<script type="text/javascript" src="./index.js.txt"></script>
其他想法
设置type="css"
在Firebug中没有显示错误,页面验证,但CSS没有正确加载 - 我很确定这不是一个有效的MIME类型。我试图在W3C上找到一个MIME类型列表,但与所有内容一样,很难找到/理解W3C
这适用于其他不那么受欢迎的扩展程序,例如dat:href="./foo.css.dat"
答案 0 :(得分:6)
当您在HTML中使用type
属性时,您会说“当您获取此资源时,期望获取此类数据。”这允许用户代理(例如浏览器)避免请求他们知道无法处理的资源。对于CSS,您需要将其设置为text/css
。
当服务器响应请求时,HTTP Content-Type
标题会显示“此内容 此类型”。它是规范的,对于CSS数据也必须设置为text/css
。
因为您使用了.txt文件,所以服务器(在默认配置中)表示该文件包含text/plain
的数据,因此它告诉浏览器。您无法从浏览器覆盖此内容。
适用于JavaScript
由于各种原因,浏览器倾向于忽略服务器为JavaScript指定的Content-Type。这可能被视为这些浏览器中的错误。
设置type =“css”在Firebug中没有显示错误并且页面有效,但CSS没有正确加载 - 我很确定它不是有效的MIME类型,但
css
不是注册的MIME类型,浏览器不会将其识别为它可以理解的样式表语言,因此它不会尝试下载它。
我试图在W3C上找到一个MIME类型列表,但与所有内容一样,很难找到/理解W3C
W3C不对MIME类型注册表负责,您可以在http://www.iana.org/assignments/media-types/找到它
答案 1 :(得分:2)
如果有人还想这样做,可以使用JavaScript完成。这是一个粗略的jQuery解决方案:
var sheet = $('<style></style>')
$('head').append(sheet)
sheet.load("./foo.css.txt")
答案 2 :(得分:0)
如果您可以使用.php而不是.txt,则可以在文件本身中设置类型。
答案 3 :(得分:0)
尝试使用服务器端扩展名,例如.php
在这种情况下,您可以在文档中设置mime-type。
答案 4 :(得分:0)
由于无意中遗漏了样式标签,因此出现了此错误。
例如
<link rel="stylesheet" href="lib/mycss.css" />
应为:
<style><link rel="stylesheet" href="lib/mycss.css" /></style>