Angularjs Angular UI路由器只能在url中的三个以上目录上工作

Angularjs Angular UI路由器只能在url中的三个以上目录上工作,angularjs,angular-ui-router,Angularjs,Angular Ui Router,为什么我的角度路由器只有在目录大于3(三)时才工作。如果没有,我刷新浏览器时会出现错误404 状态('new'{ url:“/new”,//在使用/new/x/x/x时有效 templateUrl:'new.html' }) 我正在使用asp.net mvc尝试使用类似的东西 $routeProvider .when('/users',{ templateUrl: '/views/users.html', controller:

为什么我的角度路由器只有在目录大于3(三)时才工作。如果没有,我刷新浏览器时会出现错误404

状态('new'{
url:“/new”,//在使用/new/x/x/x时有效
templateUrl:'new.html'
})

我正在使用asp.net mvc

尝试使用类似的东西

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

如果您得到的是404,这意味着您正在使用GN
HTML5模式
(清除url中的哈希)。因此,您的项目中必须有一个
.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
请参阅或。

如果在刷新浏览器时收到404,则服务器正在处理路由,而不是角度路由,并且未正确配置。很可能(但此处未显示)您正在使用HTML5模式,这要求您的服务器进行特殊配置。。。嵌套状态以实现您的结果这与UI路由器状态有关吗?他使用的是UI路由器,而不是,ngRoute.where是问题的答案。因此您必须搜索IIS的相关目录。但是为什么我在url/new/x/x/x中刷新时没有收到任何错误?您确定项目中没有类似
/new/x/x/x
的目录吗?是的,我没有。我想这是因为route-config-basic/controller/function/id,所以我还在我的应用程序中为你的答案找到相关的IIS