<link type="text/css" media="all" rel="stylesheet" href="./foo.css.txt" />
Firbug错误
样式表foo.css.txt没有被加载,因为它的MIME类型 "textplain "不是 "textcss"。
解释
浏览器将CSS解释为一个文本文档而不是CSS,尽管我们努力通过浏览器强制执行它的MIME。 当然,在生产中我将使用 foo.css
(wo的txt扩展),但我认为这将是可能的。 它对JavaScript有效。
<script type="text/javascript" src="./index.js.txt"></script>
其他想法
设置 type="css"
在Firebug中不显示错误,页面也能验证,但CSS不能正常加载--我很确定这不是一个有效的MIME类型。 我试着从W3C上找到一个MIME类型的列表,但是和其他东西一样,很难理解W3C的意思。
这对其他不那么流行的扩展是有效的,比如dat.css.txt。href="./foo.css.dat"
当你使用 type
在HTML中,你说的是 "当你获取这个资源时。期待 来获取这种类型的数据"。这允许用户代理(如浏览器)避免请求他们知道自己无法处理的资源。对于CSS,你需要将其设置为 text/css
.
当服务器响应该请求时,HTTP Content-Type
头部写着 "此内容 是 的"。它是规范的,也必须设置为 text/css
的CSS数据。
因为您使用了一个.txt文件,服务器(在默认配置中)说该文件包含的数据是 text/plain
所以它告诉浏览器,。你不能从浏览器中覆盖这一点。
它适用于JavaScript
浏览器由于各种原因,往往会忽略服务器为JavaScript指定的Content-Type。这可能被认为是这些浏览器的一个错误。
设置type="css "在Firebug中不会显示错误,页面也会验证,但CSS不能正常加载--我很确定这不是一个有效的MIME类型。
css
不是一个注册的MIME类型,浏览器无法识别它是一种它能理解的样式表语言,所以它不会尝试下载它。
我试着从W3C上找到一个MIME类型的列表,但是和所有的东西一样,很难理解W3C的MIME类型。
W3C并不负责MIME类型注册表,你可以在以下网址找到它 http:/www.iana.orgassignmentsmedia-types
如果有人还想这样做,可以用JavaScript来实现。这里有一个粗略的jQuery解决方案,如果你可以使用.php而不是.txt,你可以在文件中设置类型。
var sheet = $('<style></style>')
$('head').append(sheet)
sheet.load("./foo.css.txt")
如果你能用.php而不是.txt,你可以在文件本身设置类型。
试试使用服务器端的扩展名,比如.php
在这种情况下,你可以在文档本身设置mime-type。
我得到这个错误,因为我无意中漏掉了样式标签。
例如
<link rel="stylesheet" href="lib/mycss.css" />
应该是:
<style><link rel="stylesheet" href="lib/mycss.css" /></style>