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", ".+");
我尝试使用 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", ".+");