Laravel路线和Vue路线冲突

时间:2018-06-21 10:36:25

标签: laravel vue.js vue-router

我正在尝试使用laravel和vue创建SPA。还安装了Voyager以供管理员使用。 Voyager是http://localhost:8000/admin ..,它使用了laravel网络路线。

我现在使用Vue路由器进行路由,现在无法访问它: 我的家乡路线(vue)http://localhost:8000/home

的示例

app.js

...
import VueRouter from  'vue-router';

import App from './components/App.vue';
import Home from './components/Home.vue';

Vue.use(VueRouter);

const router = new VueRouter({
    mode: 'history',
    routes: [
        {
            path: '/home',
            name: 'home',
            component: Home
        },
    ],
});

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

App.vue

<template>
    <div>
        <h1>Vue Router Demo App</h1>

        <p>
            <router-link :to="{ name: 'home' }">Home</router-link> |
        </p>

        <div class="container">
            <router-view></router-view>
        </div>
    </div>
</template>
<script>
    export default {}
</script>

Home.vue

<template>
    <p>This is the homepage</p>
</template>

index.blade.php

@extends('layouts.app')
@section('content')
    <app></app>
@endsection

web.php

Auth::routes();

Route::get('/{vue_capture?}', function () {
    return view('index');
})->where('vue_capture', '[\/\w\.-]*');


Route::group(['prefix' => 'admin'], function () {
    Voyager::routes();
});

1 个答案:

答案 0 :(得分:0)

好,我解决了!!

交换我们中路线的声明顺序。

web.php

Auth::routes();

Route::group(['prefix' => 'admin'], function () {
    Voyager::routes();
});

Route::get('/{vue_capture?}', function () {
    return view('index');
})->where('vue_capture', '[\/\w\.-]*');