VueRouter在非历史记录模式下省略#之前的正斜杠

时间:2017-03-08 16:28:16

标签: vuejs2 laravel-5.4 vue-router

我尝试在 Laravel 应用中使用 VueRouter 2.2.1,出于某种原因我的网址(虽然工作)以奇怪的方式显示#符号

http://myapp.dev/admin#/

而不是

http://myapp.dev/admin/#/

正如我通常所期望的那样......

这是我的 VueRouter 配置

const Router = new VueRouter({
    routes: [
        {
            path: '/',
            component: App,
            children: [
                {
                    path: 'dashboard',
                    name: 'dashboard',
                    component: Dashboard
                }
            ]
        }
    ]
});

在PHP方面,我只是为应用程序的<{1}}部分定义捕获所有路由

/admin
像这样,有什么我做错了吗?它正在发挥作用,但它只是让我觉得#只是漂浮在那里。

2 个答案:

答案 0 :(得分:0)

您必须启用历史记录模式,如here所述,我在您的vue-router配置中没有看到。

const Router = new VueRouter({
    mode: 'history',
    routes: [
        {
            path: '/',
            component: App,
            children: [
                {
                    path: 'dashboard',
                    name: 'dashboard',
                    component: Dashboard
                }
            ]
        }
    ]
});

答案 1 :(得分:0)

您必须在服务器端执行此操作,只需将路由重定向到以'/'

结尾的路由

与laravel一样:

Route::get('{all?}', function() {
    return view('index');
})->where(['all' => '^/admin\/$'])->name('catchall');

现在只需访问/admin/#/