角度路由,直接URL导航

时间:2015-11-09 21:15:51

标签: angularjs ngroute

我在index.html文件中定义了一个角度应用。 使用角度路由我正在路由名为/erez的链接以使用模板加载视图。它在应用内部工作 - 当我点击/erez上导航栏中的index.html链接时,它的效果非常好。 但是当我直接转到地址栏上的my.site.com/erez时,它会显示404。我理解为什么这样,没有服务器端代码,但是有一种实现直接网址的纯粹角度方式吗? 我的路由代码:

var app = angular.module('labApp', ['ngRoute', 'angular.filter']);

app.config(function ($routeProvider, $locationProvider) {
    $routeProvider.
        when('/', {
            templateUrl: 'index.html',
            controller: 'mainCtrl'
        }).
        when('/erez', {
            templateUrl: 'erez2.html',
            controller: 'erezCtrl'
        }).
        otherwise({
            redirectTo: '/'
        });

    $locationProvider.html5Mode(true);
});

2 个答案:

答案 0 :(得分:2)

您可以从this link找到许多有用的信息:

因此,您需要在标记内部使用此基本网址标记:

<base href="/" />

但请注意,此基本标记可能会破坏代码中的相对链接。或者,您可以使用:

$locationProvider.html5Mode({
  enabled: true,
  requireBase: false
});

希望这有帮助。

答案 1 :(得分:1)

试试这个,现在应该可以了。

var app = angular.module('labApp', ['ngRoute', 'angular.filter']);

    app.config(function ($routeProvider, $locationProvider) {
        $routeProvider.
            when('/', {
                templateUrl: 'index.html',
                controller: 'mainCtrl'
            }).
            when('/erez', {
                templateUrl: 'erez2.html',
                controller: 'erezCtrl'
            }).
            otherwise({
                redirectTo: '/'
            });

        $locationProvider.html5Mode({ enabled: true, requireBase: false });
    });
相关问题