MIME TYPE:链接到带有txt扩展名的CSS

时间:2010-11-18 15:17:30

标签: html css mime

<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"

5 个答案:

答案 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>