Vue路线不起作用。 Laravel 8 + Vue

时间:2020-10-08 11:42:26

标签: laravel vue.js

我不知道我的代码有什么问题,还是在laravel 8上出现问题?

路由器JS文件

import Vue from 'vue'
import VueRouter from 'vue-router'
import FirstPage from './components/pages/FirstPage.vue'
Vue.use(VueRouter)

const routes = [
    { path: '/new-route', component: FirstPage }
]

export default new VueRouter({
    mode: 'history',
    routes
})

应用JS文件

require('./bootstrap');

window.Vue = require('vue')

import router from './router'

Vue.component('mainapp', require('./components/mainapp.vue').default)

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

网络PHP文件

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\TestController;


Route::get('/', function () {
    return view('welcome');
});

Route::get('test', [TestController::class, 'test']);

Route::any('{slug}', function(){
    return view ('error');
});

有什么想法吗?或任何建议。 (它需要发布更多详细信息)

1 个答案:

答案 0 :(得分:2)

您需要在web.php

中使用它
Route::any('{all}', [TestController::class, 'test'])
    ->where('all', '^(?!api).*$')
    ->where('all', '^(?!storage).*$');


Route::any('{all}',function(){
    return view('main'); // it should be main blade file 
})
->where('all', '^(?!api).*$')
->where('all', '^(?!storage).*$');

在没有#的情况下工作vue路由器

此代码排除了apistorage网址,因此它们都可以正常工作,并且其他所有路由捕获功能都可以使vuejs发挥作用