如何在Angular之外捕获和重定向URL?

时间:2018-04-08 17:11:20

标签: angularjs spring-boot angular-ui-router gruntjs

我正在尝试使用以下

重定向无效网址
angular.module('myApp').config(function($stateProvider, $urlRouterProvider) {

 $urlRouterProvider.otherwise('/login');

  $stateProvider
    .state('test',{
      url:'/test',
      templateUrl: 'views/test.html'
    })
    .state('login',{
      url:'/login',
      templateUrl: 'views/login.html'
    });
  }).

此网址被重定向http://localhost/#/random,但这不是http://localhost/random而是我

Cannot GET /random 

我认为这是因为它超出了角度(没有哈希#)。

如何抓住人们输入随机网址并对其进行适当重定向?

我不想使用$locationProvider.html5Mode(true);来解决浏览器支持问题。

我正在使用grunt服务进行本地前端开发和包装,并在生产中使用spring boot运行。

2 个答案:

答案 0 :(得分:0)

当您在地址栏中输入http://localhost/random并按 Enter 时,您会向服务器发送GET请求。 AngularJS在浏览器中执行。所以这完全无关紧要。

您的服务器需要执行您想要的操作(即重定向到/#/login),而不是发送404。

答案 1 :(得分:0)

您要么不想重定向到特定路由或页面服务器端。因此,您需要拦截/覆盖处理页面错误的方法,并专门针对404。

你真的想在弹簧标签下张贴。

This可以帮助您