Laravel 子路由中的 Vue Router 找不到正确的组件

Posted

技术标签:

【中文标题】Laravel 子路由中的 Vue Router 找不到正确的组件【英文标题】:Vue Router in Laravel subroute can't find correct component 【发布时间】:2020-03-27 12:14:53 【问题描述】:

我在另一个 Laravel/Vue 项目上运行了几乎相同的配置,该项目运行得非常好,但在主路由 / 上。在这里,我将 Vue 实例分组到 admin 子路由中,我在管理员路由到我设置的 PageNotFound 组件之后键入的所有内容。

我在 web.php 中的路线:

Route::group(['prefix' => 'admin'], function() 
    Route::get('/route?', 'AdminController@index')
    ->where('route', '.*')->fallback();
);

我的 Vue 路由器设置:

const router = new VueRouter(
    mode: 'history',
    // linkActiveClass: 'active',
    linkExactActiveClass: 'exact-active',
    routes: [
        
            path: '/', // Solution: '/admin' not just '/'
            component: Dashboard,
            meta: 
                title: 'Dashboard',
                metaTags: [
                    
                        name: 'description',
                        content: 'The about page of our example app.'
                    ,
                    
                        property: 'og:description',
                        content: 'The about page of our example app.'
                    
                ]
            ,
        ,
        
            path: '*',
            component: PageNotFound,
            meta: 
                title: '404 - Page Not Found',
                metaTags: [
                    
                        name: 'description',
                        content: 'The about page of our example app.'
                    ,
                    
                        property: 'og:description',
                        content: 'The about page of our example app.'
                    
                ]
            ,
        
    ],
);

解决方案:

似乎 Vue Router 不关心我在 Laravel 中定义的任何前缀,它会查看完整路径,因此在上面的仪表板中,我将路径指定为 /,它实际上应该是 /admin

【问题讨论】:

【参考方案1】:

admin 保留在 webserver 中,例如使用管理员作为前缀

【讨论】:

以上是关于Laravel 子路由中的 Vue Router 找不到正确的组件的主要内容,如果未能解决你的问题,请参考以下文章

Vue Router 默认子路由最初未加载

vue-router 与 laravel 路由结合

Vue2 / vue-router / Laravel - 路由器视图未显示 Vue 组件

Vue-Router 不在单页应用程序中重新路由(Vue/Laravel)

使用 Vue Router 时 Laravel 路由不起作用

vue-router之路由钩子(组件内路由钩子必须在路由组件调用,子组件没用)