Angular UI Router仅在url中的三个以上目录上工作

时间:2017-03-12 14:49:07

标签: angularjs angular-ui-router

为什么我的Angular Router只在目录超过3(三)时才能工作。如果不是我在刷新浏览器时收到错误404

state('new', {
  url: '/new', // works when I use /new/x/x/x
  templateUrl: 'new.html'
})

我正在使用asp.net mvc

2 个答案:

答案 0 :(得分:0)

如果您获得404,则表示您使用HTML5Mode(从网址清除hashbang)。因此,您的项目必须有.htaccess个文件。像这样:

RewriteEngine On  
  # If an existing asset or directory is requested go to it as it is
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
  RewriteRule ^ - [L]

  # If the requested resource doesn't exist, use index.html
  RewriteRule ^ /yourProjectName/index.html

注意:yourProjectName更改为您的目录名称。

修改:对于IIS,请参阅herehere

答案 1 :(得分:-3)

尝试使用类似的东西

$routeProvider
        .when('/users',{
            templateUrl: '/views/users.html',
            controller: 'usersController'
        })
        .when('/roles',{
            templateUrl: '/views/roles.html',
            controller: 'rolesController'
        })
        .otherwise(
            { redirectTo: '/'}
        );