Субдомены Laravel Routing и Vue.js

Я использую Laravel 5.4, vue.js 2.3 и vue-router.

Текущая ситуация

При нажатии example.com Laravel возвращает представление app, которое запускает Vue.app

веб.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, я бы хотел, чтобы alert() в моем App.vue отображало usa.

Если введено italy.example.com, я бы хотел, чтобы alert() в моем App.vue отображало italy.

Я прочитал документацию по vue-router, но не уверен, является ли это проблемой Laravel, проблемой Vue или и тем, и другим.

App.vue

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

person Léo Coco    schedule 14.06.2017    source источник


Ответы (1)


VueRouter не отслеживает субдомен.

Но вы можете получить поддомен из location и использовать его в методе created вашего компонента:

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

Приведенный выше код основан на этом ответе.

person thanksd    schedule 15.06.2017