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