【问题标题】:What is the javascript MIME type for the type attribute of a script tag? [duplicate]脚本标签的 type 属性的 javascript MIME 类型是什么? [复制]
【发布时间】:2026-01-30 22:15:02
【问题描述】:

什么是MIME 类型的javascript?

更具体地说,在脚本标签的“类型”属性中放入什么是正确的? application/x-javascripttext/javascript 似乎是主要竞争者。

【问题讨论】:

标签: javascript mime-types


【解决方案1】:

这是一个常见的错误。多年来,javascript 的 MIME 类型没有标准化。现在是 officially: "application/javascript"。

这里真正的问题是大多数浏览器无论如何都不会使用该属性,至少在 script 标签的情况下不会。他们实际上是在窥视数据包并自己确定类型。

所以底线是 type="text/javascript" 就 javascript 而言没有任何作用,但它是 HTML 4 规范的一部分>XHTML 1.0.

【讨论】:

  • 我可以确认在 Internet Explorer 中使用
  • 标准是一件好事,但有时这些委员会做出的选择令人费解。 Javascript 是文本,text/javascript 是正在使用的,所以为什么选择 application/javascript。有时我想知道这些人是否真的生活在现实世界中。 ;)
  • @AnthonyWJones:这很复杂。这是一个通过标准来清理大量猖獗的做法的例子。使用的临时 MIME 类型多达 8 种。委员会提出了可靠的建议,但为时已晚。并且 JS 是文本,它也是源代码。
  • 浏览器不会做任何事情......但是 mime 类型对于代理服务器或 CDN(如 Akamai)可能意味着很多,这些可能会为您对已知 mime 类型进行最后一英里压缩.如果标题是干净和标准的,那么这样的事情就更容易了。
  • 根据 IETF 的 ECMAScript Media Types Updates,RFC 4329 已过时。
【解决方案2】:

这是我发现的关于这个主题的第一页,有任何意义。

我的集体研究表明:

  1. text/javascript 如 Keparo 所述,如果您希望它验证,则必须在 html4 和 xhtml1 中使用。虽然浏览器会忽略它。
  2. application/javascript 预计将成为新的官方 MIME 类型,如果每个人都同意并且一切都赶上来。
  3. application/x-javascript(x 表示非官方)是当前用于 javascript 的服务器端 MIME 参考。
  4. 每个人都希望,像往常一样,微软会决定做一些完全不同的事情来进一步混淆和解决问题。

总结:目前,如果您希望您的 html/xhtml 在 MSIE 中工作并通过 W3C 进行验证,请声明 type="text/javascript"。如果您希望您的网络服务器知道您的意思是 javascript,请使用 application/x-javascript

【讨论】:

  • +1 用于提及服务器端 JS。但是,您有没有在服务器端使用 app/x-js 的来源或报价?
  • Apache httpd.conf 使用服务器端 javascript MIME 来配置如下内容: - - ForceType(用于非后缀或非标准文件), - 输出过滤器(如压缩器、gzip、压缩等)否则需要通过 MIME 识别数据类型)。另外,我会给任何使用服务器端 javascript 的人打 -1,并建议:认真点,不要害怕学习。
  • 另一个 SS javascript MIME 需求示例是您使用服务器端数据库接口脚本/程序动态生成 javascript 代码同时从某种数据库填充变量的情况。生成代码必须将“Content-type: application/x-javascript”声明为标头,否则服务器软件——甚至可能是客户端软件(如果未明确声明)——将无法将数据识别为 javascript(如我之前的评论)。
  • 哈哈,看看我上面的评论,2010 年的服务器端 js 似乎是个笑话,在过去的 10 年里,nodejs 让我吃了我的话哈哈
【解决方案3】:

文本/javascript

我相信 IE 不接受 application/x-javascript

Specifying the scripting language

【讨论】:

    【解决方案4】:

    在脚本标签中,我会使用 text/javascript。无论如何,这出现在 HTML 4.0 规范中。

    http://www.w3.org/TR/REC-html40/interact/scripts.html

    [编辑] 有趣的是,在 application/javascript 上标准化的 RFC 已有 2 年历史,但 text/javascript 仍然更常见。这是定制战胜标准的又一个案例吗?它也出现在HTML5

    【讨论】:

    • text/javascript 仍然使用,原因与避免使用 PNG 图像的原因相同——与 IE 5 和 6 兼容。
    • 因为直觉上称它为 text/javascript 更有意义。
    • 直觉各不相同。 “应用程序/”!=“二进制/”
    【解决方案5】:

    定义 Javascript MIME 类型的官方 RFC 是 RFC4329

    7. JavaScript 媒体类型 7.1。文本/javascript(已过时) 类型名称:文本 子类型名称:javascript 必需参数:无 可选参数:charset,见4.1节。 编码注意事项: 与 [RFC3023] 的第 3.1 节中的注意事项相同。 安全注意事项:见第 5 节。 互操作性考虑: 无,除非在本文档的其他部分中注明。 已发布规范:[JS15] 使用此媒体类型的应用程序: 本文档中讨论的脚本解释器。 附加信息: 幻数:不适用 文件扩展名:.js Macintosh 文件类型代码:TEXT 个人和电子邮件地址联系以获取更多信息: 请参阅作者地址部分。 预期用途:已过时 使用限制:不适用 作者:见作者地址部分。 变更控制人:IESG。 7.2.应用程序/javascript 类型名称:应用程序 子类型名称:javascript 必需参数:无 可选参数:charset,见4.1节。 编码注意事项: 与 [RFC3023] 的第 3.2 节中的注意事项相同。 安全注意事项:见第 5 节。 互操作性考虑: 无,除非在本文档的其他部分中注明。 已发布规范:[JS15] 使用此媒体类型的应用程序: 本文档中讨论的脚本解释器。 附加信息: 幻数:不适用 文件扩展名:.js Macintosh 文件类型代码:TEXT 个人和电子邮件地址联系以获取更多信息: 请参阅作者地址部分。 预期用途:常见 使用限制:不适用 作者:见作者地址部分。 变更控制人:IESG。

    【讨论】:

    • 你可以写下 RFC 中所说的内容