Angular.JS:无哈希时无法设置默认路由

时间:2013-11-13 03:24:01

标签: javascript angularjs url-routing

问题是: 当网址 www.some.com 时,我无法访问主页,但可以在www.some.com/#!www.some.com/#!/

时显示

我定义了默认的网络应用程序路径:

$routeProvider.when('', {templateUrl: pathToIncs + 'home.html', controller: 'homeController'});
$routeProvider.when('/', {templateUrl: pathToIncs + 'home.html', controller: 'homeController'});

另外添加选项:

$routeProvider.otherwise({redirectTo: '/404'});

转为html5模式

$locationProvider.html5Mode(false);
$locationProvider.hashPrefix('!');

正如我所说的那样 - 当我来到像 www.some.com /#!这样的时候它会起作用,但是当 www.some.com 时却没有。在这种情况下,将调用 .otherwise 选项。

在任何其他情况下,路由工作良好。在我的应用程序中,我得到了一个网址,如www.some.com/#!/login,www.some.com /#!/ signup

P.S。服务器端适用于php5 + nginx P.P.S.我使用Angular 1.2.0和ngRoute模块

1 个答案:

答案 0 :(得分:2)

尝试设置<基数>标签

<head>
  <base href="/">
</head>

为家庭定义路线

.when('/home', {
        templateUrl: pathToIncs + 'home.html', 
        controller: 'homeController'
 })

在“/”

上使用redirectTo
.when('/', {
    redirectTo: '/home'
})

以及.otherwise

.otherwise({
    redirectTo: '/home'
});