Laravel 5.7 和 Vue 路由模式

Posted

技术标签:

【中文标题】Laravel 5.7 和 Vue 路由模式【英文标题】:Laravel 5.7 and Vue router mode 【发布时间】:2019-02-27 04:47:44 【问题描述】:

我有一个处于开发阶段的应用程序,我尝试添加 Vuejs。现在我想删除 URL 中的哈希 #。在 vue-router 实例中,我添加了路由并尝试添加

<code>mode:history</code>

但它不起作用。关于如何解决这个问题的任何想法?谢谢

这是我的路线

require('./bootstrap');

window.Vue = require('vue');

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

let routes =  [
    path: '/appearance', component: Appearance
]

const router = new VueRouter([
    routes

])


Vue.component('Sidebar', require('./components/_partials/Sidebar.vue'));


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

【问题讨论】:

请分享代码。 web.php & routes.js 【参考方案1】:

在路由器配置中添加 hashbanghistory,这将删除 URL 中的 #

试试这个:

const router = new VueRouter(
  hashbang: false, // Add this line
  history: true, // Add this line
  routes
)

【讨论】:

AddWeb:多年来我们进行了一些对话,其中我指出这里重视简洁,不鼓励和删除样板签名和闲谈材料。一位版主同意这一点,并支持我对您的一个问题所做的修改,您至少在一年内都避免添加此内容。 请继续克制 - 每个人都希望他们的材料有所帮助,没有人希望他们的材料没有帮助。这是多余的,这不是聊天室。谢谢!【参考方案2】:

在路由配置中你需要把它改成这样:

const router = new VueRouter([
    mode: 'history', // Add this line
    routes
]);

在位于 your-app-path/routes/web.php 的网络路由中,您需要将其更改为:

Route::get('/any', 'AppearanceController@index')->where('any', '.*');

通过这些基本配置,您将能够启用 html5 历史模式。现在您可以导航到任何页面,甚至可以刷新您所在的页面,并且您仍将处于您所在的位置。希望对您有所帮助。

【讨论】:

以上是关于Laravel 5.7 和 Vue 路由模式的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 laravel 5.7 和 vue JS 在 mysql 中导入 excel 文件

Laravel 5.7 签名路由返回 403 无效签名

Laravel Vue VueRouter 历史模式

Laravel 5.7 使用某些命名空间的资源控制器路由名称是啥?

Laravel 5.7 - 覆盖请求验证类中的 all() 方法以验证路由参数?

Vue系列:Vue Router 路由梳理