这个问题很简单。
为了使用 Laravel和 VueJS 构建一个简单的页面应用程序 (SPA(,路由器中存在的所有路径.js(定义 SPA 路径的文件(是否也存在于 Laravel 的web.php
中?
例如,我正在使用此处的源代码:
resources/assets/js/frontend
内部router.js
有:
export default [
{ path: '/create', component: SubmitTicketFormComponent },
{ path: '/view/:ticketId', name: 'client-view-ticket', component: ViewTicketComponent, props: true }
];
但是routes
文件夹中的web.php
有
Route::get('/', function () {
return view('welcome');
});
Route::get('/admin', function () {
return view('admin');
});
Route::post('/login', 'AuthLoginController@login');
Route::post('/logout', 'AuthLoginController@logout')->name('logout');
//Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
文件夹内的api.php
routes
有:
Route::middleware('auth:api')->group(function() {
Route::get('/profile', 'ProfileController@index');
Route::apiResource('/admin/tickets', 'AdminTicketsController');
});
Route::apiResource('tickets', 'TicketsController');
那么关于 VueJs 和 Laravel 的路径或路由声明的规则是什么?
如果你想有一个SPA并保留一些Laravel页面,你需要有这样的路线:
Route::get('/{any}', 'VueController@index')->where('any', '.*');
这可以在你的路由文件的末尾,所以如果它与现有的Laravel路由不匹配,它将打开Vue SPA,路由将从那里处理。