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

bat*_*koo 97 html javascript 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>
Run Code Online (Sandbox Code Playgroud)

bar.js也很简单:

function hello() {}
Run Code Online (Sandbox Code Playgroud)

我尝试过添加元标记:

<meta http-equiv="content-script-type" content="text/javascript">
Run Code Online (Sandbox Code Playgroud)

并与其他doctypes测试,但似乎没有任何帮助.

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

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

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

Sim*_*ris 194

我想到了!

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

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

在此输入图像描述

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

最后,铬可以再次轻松呼吸.

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

无论如何,我希望这也为你修复它!

  • 我为你提供了一百万(虚拟)投票.再加上一个真实的. (12认同)
  • 干得好!寻找解决这个烦恼的方法.我没有删除密钥,而是将数据值更改为text/javascript.谢谢! (8认同)
  • @Pakman有一天我遇到了问题,然后我买了一台新电脑并没有问题.然后,当我安装Visual Studio 2012时,我注意到它重新出现,所以我认为这是罪魁祸首.我认为它改变了注册表的文件关联中的一些东西,因为我的所有`.js`文件都有`.txt`看图标,所以我去确保它们与正确的数据类型相关联.他们不是! (4认同)
  • 希望如果他们搞砸了他们的注册表,他们将无法做到!:d (4认同)
  • 哇,你是怎么发现这个解决方案的? (2认同)

小智 30

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

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

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

- >控制面板

- >程序

- >打开或关闭Windows功能

- >互联网信息服务

- >万维网服务

- >常见的HTTP功能

- > [X]静态内容.

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