首页 > 解决方案 > Vue-Router 仅显示使用 Laravel Blade 的基本路由?

问题描述

我正在从使用 Laravel 路由切换到在我的应用程序上使用 Vue-Router,我只能使用 Vue-Router 获取要加载的基本路由。我使用本文中的示例将路由分成两个文件,公共文件和私有文件:https ://itnext.io/vue-router-99e334094362 。我是 Vue-Router 的新手,我做错了什么?

这是我的代码:

main.blade.php

<div id="app">
        <section>
            <!-- header menu -->
            <am-app-nav></am-app-nav>
        </section>
        <section>
            <router-view></router-view>
        </section>
        <section>
            <!-- Footer -->
            <am-footer></am-footer>
        </section>
    </div>

app.js

window.Vue = require('vue')

import Vue from 'vue'
import VueRouter from 'vue-router'
import router from './router/index.js'

Vue.use(VueRouter)

const app = new Vue({
  el: '#app',
  router,
})

router/index.js

import Vue from 'vue'
import Router from 'vue-router'
import routes from './routes/index.js'
Vue.use(Router)

const router = new Router({
  mode: 'history',
  routes: [
    {
      path: '/',
      redirect: '/welcome',
    },
  ].concat(routes),
})

export default router

router/routes/index/js

import publicRoutes from './public.js'
import privateRoutes from './private.js'

export default publicRoutes.concat(privateRoutes)

router/routes/private.js

const routes = [
  {
    path: '/dashboard',
    component: require('../../views/admin/Dashboard').default,
  },
  {
    path: '/client-details',
    component: require('../../views/admin/ClientDetails').default,
  },
  { 
    path: '*', component: require('../../views/public/NotFound').default 
  },
]

export default routes.map((route) => {
  return { ...route, meta: { public: false } }
})

标签: laravelvue.jsvuejs2vue-router

解决方案


我需要将此添加到web.php

// SPA Route
Route::get('{any}', function () {
    return view('_layouts.main');
})->where('any', '.*');


推荐阅读