首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ngRoute在刷新或未知路由上不起作用

ngRoute在刷新或未知路由上不起作用
EN

Stack Overflow用户
提问于 2016-04-12 21:47:38
回答 1查看 389关注 0票数 1

我的代码出现了问题。

在本地主机上刷新页面时:端口号/主目录或/todos或/contacts它会崩溃->

with replay无法获取/home、/todos或/contacts。

如果我只输入本地主机,也会出现同样的问题:端口号/blablabla ->

无法获取/blablabla的重播

但是如果我只输入localhost:portnumber,它会用localhost:portnumber/home重播,这很好!

我需要修复刷新问题和未知路径

我的ngRoute代码:

代码语言:javascript
复制
angular.module('contactsApp' , ['ngRoute', 'ngMessages'])
/*
    ROUTE configuration
    when href is... do...
*/
.config(function ($routeProvider, $locationProvider) {
    $routeProvider
        .when('/contacts', {
            controller: 'listCtrl',
            templateUrl: '/views/list.html'
        })
        .when('/contacts/new', {
            controller: 'newCtrl',
            templateUrl: '/views/new.html'
        })
        .when('/contact/:id', {
            controller: 'editCtrl',
            templateUrl: '/views/edit.html'
        })
        .when('/todos', {
            controller: 'todoCtrl',
            templateUrl: '/views/noteslist.html'
        })
        .when('/home', {
            controller: 'homeCtrl',
            templateUrl: '/views/Home.html'
        })
        .otherwise({redirectTo: '/home'});
    $locationProvider.html5Mode(true);
});

我的index.html:

代码语言:javascript
复制
<html ng-app="contactsApp">
<head>

    <base href="/">

    <!-- Custom CSS -->
    <link rel="stylesheet" href="src/css/style.css" type="text/css">
    <link href="src/css/landing-page.css" rel="stylesheet">

    <!-- Bootstrap Core CSS -->
    <link href="src/css/bootstrap.min.css" rel="stylesheet">

</head>
<body>

    <!-- Navigation bar -->
    <nav class="navbar navbar-default navbar-fixed-top topnav" role="navigation">
        <div class="container topnav example2">
            <!-- Brand and toggle get grouped for better mobile display -->
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="/home"><img src="images/logo_noback.jpg" alt="My Office" height="40px" width="auto"/></a>
            </div>
            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                <ul class="nav navbar-nav navbar-right increse-font-17">
                    <li>
                        <a href="home">Home</a>
                    </li>
                    <li>
                        <a href="todos">ToDo</a>
                    </li>
                    <li>
                        <a href="contacts">Contacts</a>
                    </li>
                </ul>
            </div>
        </div>   
    </nav>
    <!-- End Navigation bar -->

    <!-- Changed page contact -->
    <div class="navbar-overlap">
        <div ng-view></div>
    </div> 
    <!-- End Changed page contact -->

    <!-- Sticky footer -->
    <footer class="navbar navbar-default navbar-fixed-bottom topnav footer-backcolor">
        <div class="col-md-12 margin-5">
            <p class="col-md-6 breadcrumb visible-md visible-lg">Copyright &copy; My Office 2016. All Rights Reserved</p>
            <ul class="pull-right breadcrumb visible-md visible-lg">
                    <li><a href="/home">Home</a></li>
                    <li><a href="/todos">Todo</a></li>
                    <li><a href="/contacts">Contacts</a></li>
            </ul>
        </div>
    </footer>
    <!-- End Sticky footer -->

    <script src="src/js/jquery.js"></script>
    <script src="src/js/bootstrap.min.js"></script>
    <script src="lib/angular/angular.min.js"></script>
    <script src="lib/angular/angular-route.min.js"></script>
    <script src="lib/angular/angular-messages.min.js"></script>
    <script src="src/js/app.js"></script>
    <script src="src/js/controller.js"></script>
    <script src="src/js/filters.js"></script> 
    <script src="src/js/derectives.js"></script> 
</body>
EN

回答 1

Stack Overflow用户

发布于 2016-04-13 00:00:46

错误不在您的angular应用程序中:这是因为您正在使用html mode进行客户端url重写。

这样做时,您还需要重写URL服务器端,以避免在用户点击F5或手动输入页面的URL时提供404服务。

对于NodeJS服务器AngularJS html5mode reloading page,此问题适用于相同的问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36575244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档