在FF和所有,我的javascript工作良好。但在Chrome中,它会给出这样的信息:

资源解释为脚本,但传输与MIME类型文本/纯。

我已经检查了所有的脚本标签,他们都有MIME类型=“文本/javascript”。它甚至说jquery和jquery ui。Chrome出了什么问题?

问题是什么,解决方法是什么?它是我必须改变浏览器的“选项”,还是来自服务器,或者我必须调整我的代码?


当前回答

发生这种情况的常见情况是,您只是忘记在脚本调用中包含该类型。你必须显式地设置它,因为它是-根据W3 -要求:

type (content-type):该属性指定元素内容的脚本语言,并覆盖默认的脚本语言。脚本语言被指定为内容类型(例如,“text/javascript”)。作者必须为该属性提供一个值。此属性没有默认值。

浏览器仍然有一个默认值plain/text。

例子:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&language=en"></script>

你也可以在Apache配置中设置该文件扩展名的默认值:

<IfModule mod_mime.c>
    AddType text/javascript .js
</IfModule>

其他回答

我有同样的错误,最后(在我的特殊情况下),我发现部署描述符(web.xml)有问题

存在的问题:

<servlet-mapping>
    <servlet-name>SessionController</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
...
<welcome-file-list>
    <welcome-file>/</welcome-file>
</welcome-file-list>

解决方案:

<servlet-mapping>
    <servlet-name>SessionController</servlet-name>
    <url-pattern>/SessionController</url-pattern>
</servlet-mapping>
...
<welcome-file-list>
    <welcome-file>desktop.jsp</welcome-file>
</welcome-file-list>

奇怪的问题,但这帮我解决了我的问题。有时候,即使是最简单的事情也很难弄清楚……

而不是使用 /js/main.css在我的脚本标签我使用js/main.css

是的,它确实起到了作用。我坐在WAMP / Windows上,我没有vhost,但只是使用localhost/<项目>

如果我引用/js/main.css,那么我引用localhost/css/main.css,而不是localhost/<项目>/css/main.css

当你想到它的时候,这是很明显的,但如果有人偶然发现了这个问题,我想我会分享这个答案。

检查你的js文件是否在服务器上存在。我有这个问题,发现js文件没有上传到服务器,服务器实际上是返回html页面,而不是-这是服务器上配置的默认文档(如default.html)

我在使用web框架时遇到了这个问题,并通过将相关的javascript文件移动到指定的(由框架)javascript文件夹中来修复它。

在apache的httpd.conf中,只需添加这样一行:

AddType application/x-javascript .js