资源解释为脚本,但使用MIME类型text / plain传输 - 用于本地文件

时间:2012-08-17 09:21:13

标签: javascript html google-chrome mime-types

在包含本地脚本文件时,我在Google Chrome中收到“资源被解释为脚本但在MIME类型为text / plain”的警告。

我知道从服务器或通过ajax加载文件时出现的问题通常取决于设置的错误标头。

奇怪的是,即使从本地文件夹运行,我也会收到此警告:file:///C:/test/foo.html

仅在具有最基本html的Chrome中发生这种情况:

<!DOCTYPE html>
    <html>
    <head>
        <script type="text/javascript" src="bar.js"></script>
    </head>
    <body>
    </body>
</html>

bar.js也很简单:

function hello() {}

我尝试添加元标记:

<meta http-equiv="content-script-type" content="text/javascript">

并使用其他doctypes进行测试,但似乎没有任何帮助。

这显然不是一个真正的问题,因为脚本仍然可以正常工作,但我正在开发一个大型项目,目前包含大约150个脚本。因此,很难看到它们之间何时发生实际警告。

当我在本地或远程服务器上运行文件时,一切正常。

关于为什么chrome会让我烦恼的任何想法?

3 个答案:

答案 0 :(得分:195)

我明白了!

Visual Studio安装程序必须在注册表中添加错误行。

打开regedit并查看此注册表项:

enter image description here

看到那把钥匙?内容类型键? 将其值从text / plain更改为text / javascript。

最后,铬可以再次呼吸。

我应该注意,在Windows 7上默认不存在Content Type和PercievedType,因此您可以安全地删除它们,但您需要做的最小值就是编辑。

无论如何,我希望这也能为你解决这个问题!

答案 1 :(得分:30)

我尝试使用此方法解决此问题,但它对我不起作用。

我的问题是IIS管理器在HTTP功能中没有MIME类型。

我可以通过启用静态上下文来启用它......

- &GT;控制面板

- &GT;程序

- &GT;打开或关闭Windows功能

- &GT;互联网信息服务

- &GT;万维网服务

- &GT;常见的HTTP功能

<强> - &GT; [X]静态内容。

在此之后,出现了MIME类型,一切都重新开始了。

答案 2 :(得分:0)

接受的答案很棒!但是,只为那些遇到像我这样的问题的人发布答案,有时使用部门/大学的计算机,我没有权限更改注册表中的任何关键值。

更改

<script type="text/javascript" src="main.js"></script>

<script src="main.js"></script>

虽然错误消息仍然存在,但页面加载正确。