2

我用于index.html我的页面的主人,我有部分视图ng-view$routeProvider。从 URL中删除#字符后(使用html5mode),我的应用程序无法使用 URL(默认路由除外)。也打开页面,因为新标签返回 404 错误。应用程序找不到index.html。当我点击浏览器中的链接时一切正常

<!DOCTYPE html >
<html ng-app="myApp">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<!-- CSS File -->
<!-- JS File -->
<title></title>
</head>
<body>
  <div class="container" ng-controller="RootController">
  <!-- Header Of Page -->
  <div class="header">
    <a href="" class="header_logo">
      <img src="img/logo.png">
    </a>
    <a href="" class="header_name">
    </a>
    <a href="{{ link }}" class="header_signOut">
    </a>
  </div>
  <!-- Separator Line -->
  <div class="separator"></div>
  <!-- Rendered By AngularJS -->
  <div class="myClass" ng-view></div>
  <!-- Footer -->
  <div class="footer"></div>
  </div>
</body>
</html>

这是路由

when('/', {
  controller: OperatorController,
  templateUrl: 'html/operator.html'
}).

when('/simReport', {
  controller: SimReportController,
  templateUrl: 'html/simReport.html'
}).
4

1 回答 1

3

我有同样的问题。

发生这种情况是因为当您直接加载页面时,而不是从应用程序内的链接加载,角度尚未加载,因此它是处理请求的服务器路由器,而不是角度的。如果您使用服务器来为您的 Angular 应用程序提供服务,您需要更新其路由器,以便任何应该由 Angular 处理的 url 都需要重定向到您的 index.html(以便 Angular 可以加载并进行路由)。

如果您使用 grunt/yeoman 加载您的 Angular 应用程序,我可以编辑我的答案并提供更多详细信息

于 2013-08-18T18:50:53.103 回答