如果重新加载它,ui-router无法加载状态

时间:2017-03-25 06:54:07

标签: angularjs node.js angular-ui-router

有一个带ui-router的应用程序,如果我重新加载页面(状态),我会遇到问题。 示例:应用程序根路径'/'和州注册'/ registration'如果我去链接'/ registration',加载注册页面,然后我刷新页面并得到:

  

无法获取/注册

我知道这个问题并使用.htaccess

RewriteEngine On
Options FollowSymLinks

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /#/$1 [L]

但它并没有解决我的问题。

我的app.js

var app = angular.module('myApp', [
    'ui.router',
    'ngCookies',
    'myApp.main',
    'myApp.navbar',
    'myApp.registration',
    'myApp.login',
    'myApp.newOrder',
    'ui.bootstrap',
    'ui.bootstrap.datetimepicker',
]);

app.config([
    '$stateProvider',
    '$urlRouterProvider',
    '$locationProvider',
    function ($stateProvider, $urlRouterProvider, $locationProvider) {
    $locationProvider.html5Mode(true);
    $urlRouterProvider.otherwise('/');
    $stateProvider
        .state('main', {
            url: '/',
            templateUrl: 'templates/content/main.html',
            controller: 'mainCtrl'
        })
        .state('registration', {
            url: '/registration',
            templateUrl: 'templates/content/registration.html',
            controller: 'registrationCtrl'
        })
        .state('login', {
            url: '/login',
            templateUrl: 'templates/content/login.html',
            controller: 'loginCtrl'
        })
        .state('new-order', {
            url: '/new-order',
            templateUrl: 'templates/content/newOrder.html',
            controller: 'newOrderCtrl'
        });
}]);

index.html使用:

<base href="/">

1 个答案:

答案 0 :(得分:0)

我得到'无法获得/注册',因为:

  

这是因为当您提交链接时,它会向该请求发出请求   服务器上的路由,当angular使用客户端路由时。至   启用html5模式,您需要在html5的所有路由上提供索引   模式。像节点应用程序一样。

Link回答主题。

然后我收到与此question

相同的错误

现在一切都很完美。