代码之家  ›  专栏  ›  技术社区  ›  vol7ron

MIME类型:链接到CSS w/a txt扩展名

  •  2
  • vol7ron  · 技术社区  · 14 年前
    <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"

    4 回复  |  直到 14 年前
        1
  •  6
  •   Quentin    14 年前

    当你使用 type 属性,在HTML中,您是说“当您获取此资源时, 期待 这允许用户代理(如浏览器)避免请求他们知道自己无法处理的资源。对于CSS,您需要将其设置为 text/css .

    当服务器响应请求时,HTTP Content-Type 头上写着“这个内容 属于这种类型”。它是规范的,还必须设置为 文本/css 对于CSS数据。

    因为您使用了一个.txt文件,所以服务器(在默认配置中)说该文件包含 text/plain 所以它告诉浏览器。不能从浏览器中覆盖此项。

    它适用于JavaScript

    出于各种原因,浏览器倾向于忽略服务器为JavaScript指定的内容类型。在这些浏览器中,这可能被认为是一个bug。

    设置type=“css”不会在Firebug中显示错误,页面会验证,但是css没有正确加载-我很确定这不是有效的MIME类型

    css 不是注册的MIME类型,浏览器无法将其识别为可以理解的样式表语言,因此它不会尝试下载它。

    我试图从W3C中找到一个MIME类型列表,但是和所有事情一样,很难找到/理解W3C

    W3C不负责MIME类型注册表,您可以在 http://www.iana.org/assignments/media-types/

        2
  •  2
  •   Greg Ball    13 年前

    如果还有人想这样做,可以使用JavaScript来完成。下面是一个粗略的jQuery解决方案:

    var sheet = $('<style></style>')
    $('head').append(sheet)
    sheet.load("./foo.css.txt")
    
        3
  •  0
  •   Damien    14 年前

    如果可以使用.php而不是.txt,则可以从文件本身设置类型。

        4
  •  0
  •   RDL    14 年前

    尝试使用像.php这样的服务器端扩展

    在这种情况下,可以在文档本身中设置mime类型。