使用vue/vue路由器的Laravel路由

使用vue/vue路由器的Laravel路由,laravel,vue.js,routes,Laravel,Vue.js,Routes,我基本上是使用VueRouter来创建我所有的路由,它工作得非常好。然而,我的应用程序是使用Laravel构建的。因此,如果我刷新任何路由,我会得到一个错误,即没有定义路由。因此,在每一个控制器中,我必须添加一个索引函数。这只是返回我的app.blade的视图,它只是通常的标签等,并返回加载我的单页应用程序的视图。我只是想知道有没有更干净的解决办法?我想我可以将返回视图移动到单个控制器中,并使我的控制器扩展它。但我只是想知道我是否错过了更好的方式 i、 e.我通过VueRouter的其中一条路线

我基本上是使用VueRouter来创建我所有的路由,它工作得非常好。然而,我的应用程序是使用Laravel构建的。因此,如果我刷新任何路由,我会得到一个错误,即没有定义路由。因此,在每一个控制器中,我必须添加一个索引函数。这只是返回我的app.blade的视图,它只是通常的标签等,并返回加载我的单页应用程序的视图。我只是想知道有没有更干净的解决办法?我想我可以将返回视图移动到单个控制器中,并使我的控制器扩展它。但我只是想知道我是否错过了更好的方式

i、 e.我通过VueRouter的其中一条路线:

{
    path: "/clients",
    name: "clients",
    component: () => import(/* webpackChunkName: "clients" */ "../resources/js/components/Views/Clients/Clients.vue")
},
myclients.php文件中的路由

Route::get('/clients', [App\Http\Controllers\ClientController::class, 'index'])->name('clients');
然后是ClientController索引函数

public function index()
{
    return view('app');
}
将app.blade加载到其他地方就好了,不需要为每个控制器指定。任何帮助都将不胜感激,以确保所有工作都能高效完成


谢谢

以下是我如何为我的一个项目解决这个问题的,该项目也是Vue和Laravel中的单页应用程序:

简单地说,在routes文件中,您可以输入以下代码:

Route::get('/{any}',函数(){
返回视图(“欢迎”);
})->其中(“任何”、“*”);
在我看来,我有:

@extends('layouts.app')

@section('content')
    <div class = "container">
        <router-view></router-view>
    </div>
@endsection
@extends('layouts.app'))
@节(“内容”)
@端部
基本上,这将返回任何URL的应用程序视图,因此您的Vue SPA应该可以正常工作。通常,在routes文件中放置回调函数不是一个好的做法,但在这种情况下,您甚至不会使用routes文件,因为它是SPA,所以此解决方案可以通过!)

看看这个答案,你可以在laravel的单页应用程序中尝试一下