Laravel 路由和 Vue 路由冲突

TRD*_*ren 2 laravel vue.js vue-router

我正在尝试使用 laravel 和 vue 创建一个 SPA。还安装了 Voyager 用于管理目的。Voyager 是http://localhost:8000/admin ..,它使用 laravel web 路由。

现在无法访问它我正在使用 Vue Router 作为我的路线:我的家乡路线示例 (vue) http://localhost:8000/home

应用程序.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,
});
Run Code Online (Sandbox Code Playgroud)

应用程序.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>
Run Code Online (Sandbox Code Playgroud)

首页.vue

<template>
    <p>This is the homepage</p>
</template>
Run Code Online (Sandbox Code Playgroud)

索引.blade.php

@extends('layouts.app')
@section('content')
    <app></app>
@endsection
Run Code Online (Sandbox Code Playgroud)

网页.php

Auth::routes();

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


Route::group(['prefix' => 'admin'], function () {
    Voyager::routes();
});
Run Code Online (Sandbox Code Playgroud)

TRD*_*ren 5

好吧,我解决了!

交换 we 中路由声明的顺序。

网页.php

Auth::routes();

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

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