我正在使用Vue js创建一个SPA,它有点工作,但我有一个问题。在Vue上启用历史记录模式后,我可以输入网址并使用Vue路由器转到该页面,但是当我尝试登录时,我会得到文字页面html。我知道我可以做auth\{vue?}
之类的事情,但我更愿意,如果我没有这样做的话。我希望能够始终保持url没有前缀,除非它是API请求。例如:
我有根视图:
Route::get('/{vue?}', function () {
return view('layouts.app');
})->where('vue', '[\/\w\.-]*');
然后我有api请求:
Route::group(['prefix' => 'api'], function () {
Route::post('/login', 'Auth\\LoginController@login');
Route::post('/register', 'Auth\\RegisterController@register');
Route::get('/logout', 'Auth\\LoginController@logout');
});
但是当我点击/api/login
时,我会从/{vue?}
获得返回视图数据。
我希望这是有道理的,如果有的话,任何帮助都会很棒,谢谢。
答案 0 :(得分:3)
简短的故事:在VueRouter中将历史模式声明为false,然后在Laravel端声明,只要$request->ajax()
为false,相同的路径将始终捕获请求。因此,我们可以安全地定义一个全能路由,将此类流量重定向到资源控制器的index()
方法: