在包含本地脚本文件时,我在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会让我烦恼的任何想法?
答案 0 :(得分:195)
我明白了!
Visual Studio安装程序必须在注册表中添加错误行。
打开regedit
并查看此注册表项:
看到那把钥匙?内容类型键? 将其值从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>
虽然错误消息仍然存在,但页面加载正确。