删除#Carracter导致应用程序无法正常工作

时间:2013-08-18 13:08:42

标签: angularjs html5 angular angularjs-routing

我使用index.html作为我的网页的主人,我使用ng-view$routeProvider获得了部分观看次数。从网址中删除#字符后(使用html5mode),我的应用无法使用网址(默认路由除外)。当新标签返回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'
    }).

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。

这是因为当您直接加载页面而不是从应用程序内部的链接加载时,角度尚未加载,因此它是处理请求的服务器路由器,而不是角度。 如果您使用服务器来提供角度应用程序,则需要更新其路由器,以便任何应由角度处理的URL需要重定向到index.html(因此角度可以加载并执行路由)。 / p>

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

相关问题