Laravel VueJs SPA:VueJS路由器路由应与Laravel路由匹配

时间:2019-12-12 13:31:47

标签: laravel vue.js vue-router

问题很简单。

为了使用Laravel和VueJS构建简单页面应用程序(SPA),router.js中存在的所有路径(定义SPA路径的文件)是否也应该在Laravel的web.php中出现?

例如,我正在使用here中的源代码:

router.js中的

resources/assets/js/frontend具有:

export default [

    { path: '/create', component: SubmitTicketFormComponent },
    { path: '/view/:ticketId', name: 'client-view-ticket', component: ViewTicketComponent, props: true }
];

但是web.php文件夹中的routes

Route::get('/', function () {
    return view('welcome');
});
Route::get('/admin', function () {
    return view('admin');
});
Route::post('/login', 'Auth\LoginController@login');
Route::post('/logout', 'Auth\LoginController@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', 'Admin\TicketsController');
});
Route::apiResource('tickets', 'TicketsController');

那么关于VueJ和Laravel的路径或路由声明的规则是什么?

1 个答案:

答案 0 :(得分:0)

如果您想拥有SPA并保留一些Laravel页面,则需要这样的路线:

Route::get('/{any}', 'VueController@index')->where('any', '.*');

这可以在路由文件的末尾,因此,如果它与现有的Laravel路由不匹配,它将打开Vue SPA并从那里处理路由。