【问题标题】:Vue Route does not working. Laravel 8 + Vue [closed]Vue 路由不起作用。 Laravel 8 + Vue [关闭]
【发布时间】:2020-10-08 11:42:26
【问题描述】:

我不知道我的代码有什么问题或它在 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');
});

有人知道吗?或任何建议。 (需要更多细节才能发布)

【问题讨论】:

  • 你是什么web.php config .?或删除mode: 'history',&lt;router-view&gt; 在哪里?
  • 在 mainapp.vue 组件中
  • 当我删除历史记录时,它可以正常工作,但是在 url 上有 #,我怎样才能删除主题标签?
  • 哦,那是web.php的问题,你能输入那个代码吗?
  • 上面已经包含了我的代码,请看谢谢

标签: laravel vue.js


【解决方案1】:

你需要在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 url,因此两者都可以工作,其他所有路由都可以捕获,因此 vuejs 发挥了它的魔力

【讨论】:

  • 模式如何:'历史'?所以它不再需要了?
  • 当我使用上面的代码时,路由不起作用但没有错误。
  • 第一个,出现错误404
  • 你删除了web.php中的所有路由,只保留我的代码
  • 你救了我的命,兄弟。 @Marc 将此答案标记为正确!
猜你喜欢
  • 2021-07-11
  • 2021-07-18
  • 2018-03-31
  • 2020-03-25
  • 2021-06-02
  • 1970-01-01
  • 2021-02-08
  • 2017-09-22
  • 2018-08-15
相关资源
最近更新 更多