<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"
最佳答案
当您在 HTML 中使用 type
属性时,您是在说“当您获取此资源时,期望获得此类数据。”这允许用户代理(例如浏览器)避免请求他们知道无法处理的资源。对于 CSS,您需要将其设置为 text/css
。
当服务器响应请求时,HTTP Content-Type
header 表示“此内容是 这种类型”。它是规范的,对于 CSS 数据也必须设置为 text/css
。
因为您使用了 .txt 文件,服务器(在默认配置中)说该文件包含 text/plain
的数据,所以它告诉浏览器。您不能从浏览器中覆盖它。
It works for JavaScript
由于各种原因,浏览器往往会忽略服务器为 JavaScript 指定的 Content-Type。这可能被认为是这些浏览器中的错误。
Setting type="css" doesn't show an error in Firebug and the page validates, but the CSS doesn't load properly - I'm pretty sure that's not a valid MIME type though
css
不是注册的 MIME 类型,浏览器不会将其识别为它可以理解的样式表语言,因此它不会尝试下载它。
I tried to find a list of MIME types off W3C, but as with everything it's difficult to find/understand W3C
W3C 不负责 MIME 类型注册表,您可以在 http://www.iana.org/assignments/media-types/ 找到它
关于html - MIME 类型 : Linking to CSS w/a txt Extension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4216344/