子域 Laravel 路由和 Vue.js

Subdomains Laravel Routing and Vue.js

我正在使用 Laravel 5.4vue.js 2.3vue-router

现状

当点击 example.com 时,Laravel returns app 视图启动 Vue.app

web.php

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

app.js

const routes = [
    { path: '/', component: App },
];

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

App.vue

export default {
    ...
}

我想做什么

如果输入 usa.example.com,我希望 App.vue 中的 alert() 显示 usa

如果输入 italy.example.com,我希望 App.vue 中的 alert() 显示 italy

我阅读了 vue-router 的文档,但不确定它是 Laravel 问题、Vue 问题还是两者兼而有之。

App.vue

export default {
    ....
    created() {
        alert('subdomain is ' + $route.params.subdomain)
    }
}

VueRouter 不跟踪子域。

但是,您可以从 location 获取子域并在组件的 created 方法中使用它:

created() {
  let subdomain = location.hostname.split('.').shift();
  alert('subdomain is ' + subdomain);
}

以上代码基于 this answer.