Javascript ng包括不为Chrome工作

Javascript ng包括不为Chrome工作,javascript,angularjs,Javascript,Angularjs,我创建了一个test.html文件来尝试调试这个问题 test.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular.min.js"></script> <script src="a

我创建了一个test.html文件来尝试调试这个问题

test.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular.min.js"></script>
    <script src="app/controllers/MainController.js"></script>
  </head>
  <body ng-app="MyApp" ng-controller="MyController">
    <h1>{{ siteHeader }}</h1>
    <div ng-include="'assets/templates/header.html'"></div>
  </body>
</html>

{{siteHeader}}
header.html(资产/模板内部)



{{siteHeader}}
当我在Chrome中打开index.html时,第一个
{{{siteHeader}}
将加载站点的标题。header.html的任何内容(siteHeader和徽标PNG)都不会在其下方加载。当我在Firefox或Safari中打开相同的index.html文件时,header.html内容确实出现在第一个
{{siteHeader}}
下面


我做错了什么/丢失了什么?

我假设您是从本地硬盘上运行该文件的。(
文件://
)。Chrome阻止脚本从
文件
源文件读取文件。这就是为什么无法成功读取模板文件并将其包含到页面中的原因

您有两个解决方案:,一个简单的解决方案是在
允许文件访问
模式下运行chrome。这可以帮助您:


另一个解决方案是创建一个简单的http本地服务器,并从该服务器运行站点。您可以使用php、nodejs、ruby、python或其他任何工具运行此服务器。这可以帮助您:


更多信息:

直接从硬盘运行时,Angular将不起作用。你应该试试使用。它使用并通过它,您可以轻松地渲染角度应用程序,而无需运行额外的服务器

在您的问题中附加js脚本,为了更好地分析,您包含的唯一js文件是MainController.js。它是否包含MyApp的定义?你能发控制器吗?谢谢,这正是我需要的。我在Mac电脑上,终端open/Applications/Google\Chrome.app--args--允许从文件访问文件效果很好。不要这样做!你正在让你的机器受到攻击。而是运行本地服务器。那面旗很危险!!使文件系统保持打开状态以供访问。默认情况下,来自任何地方(本地或web)的文档都不能访问本地文件:///资源。
<div class="jumbotron">
  <img id="logo" src="assets/img/logo.png" />
  <br />
  <h1>{{ siteHeader }}</h1>
</div>