使用 ui-router Angular.js刷新浏览器时无法获取页面



我需要一些帮助。我面临一些问题。使用 Angular.js 再次刷新后,我无法获取页面。我在下面解释我的代码。

路线.js:

var app=angular.module('demo',['ui.router']);
app.run(function($rootScope, $state) {
      $rootScope.$state = $state;
    });
compliance.config(function($stateProvider, $urlRouterProvider,$locationProvider) {
    $urlRouterProvider.otherwise('/');
    $stateProvider
    .state('/', { 
        url: '/',
        templateUrl: 'View/demo1.html',
        controller: 'demoController'
    })
    .state('demo2', { 
        url: '/demo2',
        templateUrl: 'View/demo2.html',
        controller: 'demo2Controller'
    })
    $locationProvider.html5Mode({
      enabled: true,
      requireBase: true
    });
});

索引.html:

<div  ui-view></div> 

演示1.html:

演示控制器.js:

$scope.goToAuditDetailPage=function(){
    $state.go('demo2',{}, { reload: true });
}

在这里,当用户打开链接http://localhost/NABH/ demo1.html页面将出现并且该页面内有一次单击事件时,当用户单击该链接时,demo2.html页面即将到来并且URL http://localhost/NABH/demo2。但是在这种情况下,当用户再次刷新该链接http://localhost/NABH/demo2时,会出现此The requested URL /NABH/demo2 was not found on this server.错误。在这里,我需要刷新后该页面也应按预期工作。请帮忙。

您正在对路由使用 html5mode,因此浏览器会更改应用程序的路由,因为它们来自服务器,当用户按下刷新按钮时,浏览器会发送带有客户端路由的请求,而您的服务器不知道它。

最简单的解决方案之一是使用客户端应用程序使服务器"应答"所有路由,这样,客户端路由的请求使用 index.html shell 应答(就像导航到 / 时应答的那样),客户端应用程序将检查当前路由并呈现正确的页面(它是自动完成的)。

最新更新