1

所以我正在Laravel 5.3和Vue 2中開發一個網站/ webapp。SEO很重要,所以我想保留Laravel + Blade網站的前端/可爬網部分, Vue 2.0,所以我沒有必要使用Ajax來加載頁面內容,並允許像Google這樣的抓取工具抓取並索引該網站。 (AFAIK,谷歌沒有加載JS,但不會等待Ajax加載,所以它被擊中/未命中)。爲某些路由禁用vue-router?或者如何運行SPA後端和非SPA前端?

但是,在後端,我想完全用Vue和VueRouter進行SPA。

我該如何最好地將兩者分開?

我想我的後端通過/經理

我的解決方法到目前爲止是可訪問:

# 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後端分開?

回答

0

對於任何遇到此問題的人,我無法找到關於禁用VueRouter以進行特定鏈接的任何操作。我不認爲這是可能的,而且,這可能是不值得的麻煩。

所以我決定重新編寫我所有的代碼庫來做SPA。這是關於時間的,沒有真正的理由不這樣做。我正在使用Prerender.io的自我託管服務進行SEO預渲染等。