使用$ redirectRoute时,“找不到文件”不断发生

时间:2016-01-27 15:30:21

标签: javascript html angularjs ngroute route-provider

我的目标是让我页面上的一个链接重定向到我网站上的另一个页面。

以下是我的index.html页面上的两个链接之一:

<html ng-app="myApp">
       .
       .
       .
<body>
    <h1>My Home Page</h1>
        <div>
            <a href="login/google" class="button">Sign in with Google</a>
            <a href="login/facebook" class="button">Sign in with Facebook</a>
        </div>
<div ng-view></div>
<hr/>
  • 点击“使用Facebook登录”链接时。它重定向到另一个页面。我通过使用下面给出的'routeProvider'设置了这个。这也是一个名为'routes.js'的文件。 现在的问题是,当点击它时,页面会打开,但会显示404错误。控制台说有“找不到文件:/ login / facebook /”

    'use strict';
    
    myApp.config("$routeProviders", function($routeProvider) {
        $routeProvider
        .when('login/google', {
    
        })
        .when("login/facebook", {
            templateUrl: '/partials/login/facebook_login.html',
            controller: 'FacebookLoginCtrl'
        })
        .otherwise({
            redirectTo: '/'
        });
    });
    
  • 在我的'/ partials / login'目录下的facebook.html页面内:

    <h1>{{name}}</h1>
    <button ng-click="FBLogin()">Facebook Login</button>
    
  • 以及名为sign_in_controllers.js的文件中的FacebookLoginCtrl:

    'use strict';
    
        myApp.controller('FacebookLoginCtrl', ["$scope", function($scope) {
        $scope.name = 'Login please';
    }]);
    

这也是我的app.js文件:

    var myApp = angular.module('myApp', ['ui.bootstrap', 'ngRoute']);

当我确实有一个位于'/ partials / login /'

内的文件时,我真的不明白为什么我收到no file found错误

1 个答案:

答案 0 :(得分:1)

默认情况下,角度路由器在应用程序中使用基于散列的路径。

除非您使用html5mode并配置服务器,否则您需要在链接href中包含哈希

<a href="#/login/google" class="button">Sign in with Google</a>
<a href="#/login/facebook" class="button">Sign in with Facebook</a>