【发布时间】:2017-05-24 02:06:02
【问题描述】:
所以我在 Laravel 5.3 和 Vue 2 中开发网站/webapp。SEO 很重要,所以我想在 Laravel + Blade 中保留网站的前端/可抓取部分,并且只保留小的非必要部分在 Vue 2.0 中,我不必使用 Ajax 来加载页面内容,并允许像 Google 这样的爬虫爬取和索引站点。 (AFAIK,谷歌确实加载了 JS,但不等待 Ajax 加载,所以它是命中/未命中)。
但是,在后端,我想完全使用 Vue 和 VueRouter 进行 SPA。
如何最好地将两者分开?
我希望我的后端可以通过 /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
...
哪个有效。但是,它感觉不正确。因为视图路由器仍然加载在我的前端(附加散列/hashbang)。
那么,有没有更好的方法将我的 Laravel 前端与我的 Vue SPA 后端分开?
【问题讨论】:
标签: javascript laravel vue.js single-page-application vue-router