Laravel 5.3 和 AngularJS 1.5 路线上的不当行为

Misbehaviour on routes with Laravel 5.3 and AngularJS 1.5

我尝试使用 Laravel 5.3 和 AngularJS 创建一个应用程序。我想使用 Angular 中的路由和模板而不是 Laravel.

这是来自 Laravel 的 web.php 文件:

Route::get('/', function () {
    return view('index');
});

这是 AngularJS 中 ui-router 的一部分:

routeConfig.$inject = ['$stateProvider'];
function routeConfig ($stateProvider) {
  // Routes
  $stateProvider
    .state('home', {
      url: '/',
      templateUrl: 'app/views/home.html'
    })
    .state('register', {
      url: '/register?oauth_token&oauth_verifier',
      templateUrl: 'app/views/register.html',
      controller: 'RegisterController',
      controllerAs: 'registerCtrl'
    })
  };

我还启用了 html5 模式和头上的基础 url。现在的问题:

当我在家点击link进入注册页面时,它起作用了。但是如果我尝试直接加载注册页面,它会通过 laravel 路由加载它,并且由于我在那里没有提到任何相关内容,所以我有一个 NotFoundHttpException。

那是因为当您刷新所有路由时,首先由 laravel 处理。

我遇到了同样的问题,有两种方法:

要么将 angular 应用程序放在不同的域中......但你会 运行 进入 CORS 问题

或告诉 laravel 将任何路由路由到 angular 应用程序,这样更容易

Route::any('{path?}', function()
{
    return view("index");
})->where("path", ".+");