深度路由不能按预期的ui-router工作

时间:2015-09-17 09:25:44

标签: javascript html angularjs angular-ui-router

这是我的路由代码,当我在互联网上查看时,使用带有requireBase的html5Mode应该已经解决了这个问题。 当我直接尝试访问 localhost / index 时,它就是说无法获取/登录

app.config(function ($stateProvider, $urlRouterProvider, $locationProvider) {
    // Setting login page as default location for the App
    $urlRouterProvider.otherwise("/login");

    $stateProvider.state('root', {
        url: '/login',
        views: {
            "temp_app": {
                templateUrl: 'app.tpl.html'
            }
        }
    });
    $locationProvider.html5Mode({ enabled: true, requireBase: false });
});

1 个答案:

答案 0 :(得分:0)

这是一个Web服务器问题,虽然您没有指定哪种技术,但我查看了另一个使用IIS标记的问题,因此如果您确实使用了IIS,则需要包含一些{{1}您<rewrite>中的规则。 Web.config也不是正确的方法,而是需要一个基础。请注意以下示例...

requireBase: false
<head>
    <base href="/">
[...]
app.config(function ($stateProvider, $urlRouterProvider, $locationProvider) {

    $locationProvider.html5Mode({
        enabled: true
    });
[...]

如果我的预感错误,并且您没有使用IIS,请参阅重写常见网络服务器的解决方案,包括(以及IIS): Apache Nginx 快递 - How to: Configure your server to work with html5Mode

此外,请参阅$location docs以获取更多信息,以及Error: $location:nobase $location in HTML5 mode requires a tag to be present!,以便更深入地了解我们为何需要以这种方式设置应用