我使用角度1.6.1这个简单的角应用程序。
的index.html
<!DOCTYPE html>
<html ng-app="App">
<head>
<title>Test</title>
<script src="bower_components/angular/angular.js"></script>
<script src="app/app.js"></script>
</head>
<body>
<div>
<home></home>
</div>
</body>
</html>
app.js
(function() {
'use strict';
var app = angular.module('App', []);
app.component('home', {
template: '<h1>{{$ctrl.head}}</h1><ul><li>1</li><li>2</li></ul>',
controller: function() {
var vm = this;
this.head = "ONE";
}
});
})();
这将加载OK并在IE11中正确显示,但无法加载Chrome(55.0.2883.87 beta(64位)或FF(51.0b13(32位))我绝对不知道为什么......
当我点击Chrom Dev Tool的Sources选项卡中的app.js时,源代码就像字符一样奇怪,但是通过Notepad ++查看源码,看起来都很好......?!?!
这是chrome上的devconsole的截图
对于我添加到index.html的每个JS文件,我都能看到相同的问题。 我没有在我的电脑的浏览器中更改任何其他语言环境设置......
我不知道为什么会这样。有人见过这样的事吗?
答案 0 :(得分:1)
通过键入
在命令行中创建所有文件echo "" >> app.js
并且这已将编码设置为UCS-2 LE BOM
,如Notepad ++中所示,并且由于某些不明原因,Chrome和Firefox无法正确读取文件...
因此,在Notepad ++中将文件转换为UTF-8-BOM
(菜单 - &gt;编码 - &gt;转换为UTF-8-BOM)文件已被正确读取并且全部工作...
我仍然感兴趣的是为什么旧的IE设法读取网站确定,但更现代的浏览器失败...
答案 1 :(得分:0)
我有完全相同的问题。在我的例子中,主HTML页面是在localhost中,它是从我的控件中调用外部.js文件。现代版Chrome和Firefox中存在此问题(但在Internet Explorer中不存在)。我发现HTML页面是用Unicode而不是UTF8或ANSI意外创建的。我使用notepad.exe将其保存为ANSI(因为它只用英语)并解决了这个问题。