在提供JavaScript文件时,使用application/javascript或application/x-javascript是否更好

ave*_*net 93 javascript content-type http

整个问题符合标题.并添加一些上下文:我不是根据规范所说的问什么是最好的,而是考虑到现在部署的浏览器组合,哪种方法效果最好.

一些数据点:

  • Google使用text/javascript其主页上使用的JS.
  • Google text/javascript在Google文档上使用.
  • Google使用Ajax库服务application/x-javascript来提供JavaScript文件.
  • 雅虎用它application/x-javascript来服务他们的JS.
  • 雅虎使用application/x-javascript其主页上提供的JavaScript.

Que*_*tin 115

  • text/javascript 已经过时了
  • application/x-javascript 在决定搬到......时是实验性的
  • application/javascript 是JS的当前官方MIME类型

也就是说,浏览器经常忽略content-type服务器发送的内容并且非常注意该type属性(有些可能还没有识别application/javascript).

我的建议:

  • 在服务器上使用application/javascript
  • 使用HTML 5并省略type脚本元素中的属性

  • 不好了!庞大,单一,缓慢的组织必须是正确的!规格一定是错的!Narghh.我会继续相信规范和我自己对大型(慢)公司的经验,即使他们中的一个曾经雇用我. (6认同)
  • 几个月前的这个问题恰恰相反.有人错了:)"Kelly是对的,浏览器倾向于信任带有响应标头的MIME类型而不是脚本标签的type属性"http://stackoverflow.com/questions/189850/what-is-the-javascript- MIME类型 - 什么 - 属于功能于该型属性的 - 一个脚本/ 189877#189877 (3认同)

Mat*_*hen 14

在大多数情况下,服务器发送的mime类型没有实际区别.我会使用application/javascript,这也是RFC推荐的.


Mat*_*ens 12

这是这个问题的 2020 年答案。

text/javascript是符合HTML Standard的正确 JavaScript MIME 类型,其中指出:

服务器应该text/javascript用于 JavaScript 资源。服务器不应为 JavaScript 资源使用其他 JavaScript MIME 类型,并且不得使用非 JavaScript MIME 类型。

而且

[…] 在本规范中用于指代 JavaScript 的 MIME 类型是text/javascript,因为这是最常用的类型,尽管它是根据 RFC 4329 正式废弃的类型。

正在努力在 IETF 级别的 RFC 中反映这一现实:https : //datatracker.ietf.org/doc/draft-ietf-dispatch-javascript-mjs/

任何声称“text/javascript已过时”的说法都是基于 RFC 4329,HTML 标准和上述 IETF 草案(即即将发布的 RFC)都在明确纠正。


小智 7

如果您选择在页面中使用js的应用程序/ javascript,IE7和IE8将无法运行您的脚本!责备微软所有你想要的,但如果你想让大多数人运行你的页面使用text/javascript.

  • 当你说"application/javascript"不起作用时,你的意思是,如果将其设置为HTTP响应的内容类型或脚本标记的"type"属性?最初的问题是关于HTTP响应的内容类型.基于其他答案,看起来只有脚本标签上"type"属性的值才会在IE中产生差异. (3认同)

小智 7

它曾经是language="javacript".然后它改为type="text/javascript".现在是type="application/javacript".好吧,这变得愚蠢.一些较旧的浏览器无法识别新的浏览器application/javascript,但仍然认识到较旧的浏览器text/javascript.我计划继续使用这一点,否则我会浪费我的时间了几个小时试图改变的每个实例text/javascript进入application/javascript.
有一天,情况可能正好相反.有一天,最新的浏览器可能会拒绝旧技术,以严格遵守标准.
但是,直到人们查看我的网站开始抱怨"自从升级我的浏览器以来,大约有50%的网站消失了",我没有动机改变我网站上的代码.


Tim*_*the 6

它一直是"text/javascript",但这已经过时了(参见IANA列表),现在它应该是"application/javascript"(参见另一个IANA列表).