97

包含本地脚本文件时,我在 Google Chrome 中收到“资源解释为脚本但使用 MIME 类型文本/纯文本传输”警告。

我知道从服务器或通过 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">

并用其他文档类型进行了测试,但似乎没有任何帮助。

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

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

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

4

3 回答 3

196

我想到了!

Visual Studio 安装程序必须已将错误行添加到注册表。

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

在此处输入图像描述

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

终于铬可以再次轻松呼吸。

我应该注意的是,在 Windows 7 上默认情况下既不存在 Content Type 也不存在 PercievedType,因此您可能可以安全地删除它们,但您需要做的最低限度是编辑。

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

于 2012-08-21T14:47:46.820 回答
30

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

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

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

--> 控制面板

--> 程序

--> 打开或关闭 Windows 功能

--> 互联网信息服务

--> 万维网服务

--> 常见的 HTTP 特性

--> [X] 静态内容。

在此之后,MIME 类型出现了,一切又开始工作了。

于 2013-06-24T19:50:44.710 回答
0

接受的答案是一个很好的答案!但是,只是为那些遇到像我这样的问题的人发布答案,他们有时使用部门/大学计算机,我无权更改 regedit 中的任何键值。

改变

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

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

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

于 2014-02-26T11:11:16.340 回答