资源被解释为脚本,但以MIME类型文本/纯文本传输-用于本地文件


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">

并使用其他doctype进行了测试,但似乎无济于事。

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

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

关于为何chrome令我烦恼的任何想法?


前几天您没有碰巧安装最新的Visual Studio,对吗?这开始发生在我身上,那就是唯一改变的事情……
Simon Sarris

是的,几周前VS Express 2012 RC。我也考虑过这一点,所以我改用notepad ++创建了文件,但问题仍然相同。如果VS引起此问题,那么他们一定已经更改了某些全局设置/参数?问题是什么,如何将其改回来?
batzkoo 2012年

我仍在尝试找出同一件事。这似乎是一个全球性的事情,它发生在我安装VS2012之后。如果有任何问题,我会通知您。需要明确的是,我实际上并没有使用Visual Studio进行文件编辑,这使它变得很奇怪。
西蒙·萨里斯

Answers:


195

我想到了!

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

打开regedit并查看以下注册表项:

在此处输入图片说明

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

最终,铬可以再次轻松呼吸。

我应该注意,Windows 7在默认情况下既没有Content Type也没有PercievedType,因此您可以安全地将它们都删除,但是您要做的最少就是编辑。

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


8
做得好!寻找解决此烦恼的方法。我没有删除键,而是将数据值更改为text / javascript。谢谢!
batzkoo 2012年

哈哈我将其更改为text / script,但没有用,也许我应该尝试过text / javascript!
西蒙·萨里斯

感谢您的解决方案!我遇到了同样的问题...实际上,对于我来说,MIME类型为plain / text,javascript代码已引发错误。我有一些字符串(在数组中),包含以UTF-8编码找到的字母,这些字母在东欧语言(如“ő”)中可见。“Gergő”是匈牙利人的好名字。感谢,天哪,错误也消失了,因为我无法运行我的代码-但我没有对此进行进一步调查。
Zoltan 2012年

2
哇,您是怎么发现这个解决方案的?
Pakman 2013年

4
@Pakman我有问题的一天,然后我买了一台新电脑,却没有问题。然后,当我安装Visual Studio 2012时,我注意到它再次出现,因此我认为这是罪魁祸首。我发现它更改了注册表文件关联中的某些内容,因为我的所有.js文件都具有.txt外观图标,因此我去确保它们与正确的数据类型相关联。他们不是!
Simon Sarris

30

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

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

我能够通过...启用静态上下文来打开它

->控制面板

->程序

->打开或关闭Windows功能

->互联网信息服务

->万维网服务

->常见的HTTP功能

-> [X]静态内容。

此后,出现了MIME类型,并且所有内容再次开始工作。


0

公认的答案是一个很好的答案!但是,仅针对那些遇到问题的人(例如有时使用部门/学院计算机的人)发布答案,而我却无权更改regedit中的任何键值。

更改

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

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

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


2
但是OP的问题是页面可以正确加载,但是他仍然收到错误消息。这似乎并没有改变任何东西。
Teepeemm 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.