поэтому я разрабатываю веб-сайт / веб-приложение в Laravel 5.3 и Vue 2. SEO важно, поэтому я хочу сохранить раздел веб-интерфейса / сканирования сайта в Laravel + Blade и только небольшие ненужные разделы в Vue 2.0. , поэтому мне не нужно использовать Ajax для загрузки содержимого страницы и разрешить поисковым роботам, таким как Google, сканировать и индексировать сайт. (AFAIK, Google загружает JS, но не ждет загрузки Ajax, поэтому он попадает / промахивается).
Однако, что касается бэкэнда, я хочу полностью использовать SPA с Vue и VueRouter.
Как мне лучше всего разделить их?
Я хочу, чтобы мой сервер был доступен через / manager
Мое решение:
# routes.php
### Laravel/Frontend routes go here (before SPA) ###
Route::get('/manager/{spaPlage?}', ['middleware' => 'auth', function () {
return view('manager.index');
}])->where(['spaPlage' => '.*'])->name('manager.index');
а затем во Vue я использую:
const routes = [
{ path: '/', name: 'dashboard.index', component: require('./pages/manager/Dashboard.vue') },
{ path: '/categories', name: 'categories.index', component: require('./pages/manager/categories/Index.vue') },
{ path: '/category/:id', name: 'category', component: require('./pages/manager/categories/Category.vue') }
];
const router = new VueRouter({
routes,
base: '/manager'
})
const app = new Vue({
el: '#app',
router
...
Что действительно работает. Однако это кажется неправильным. Поскольку маршрутизатор представления все еще загружается в моем интерфейсе (добавляет хэш / хэш-банг).
Итак, есть ли лучший способ отделить мой интерфейс Laravel от моего бэкенда Vue SPA?