最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Vue開發(fā)網(wǎng)站seo優(yōu)化方法

 更新時間:2021年05月07日 14:12:34   作者:龖龖龖  
這篇文章主要介紹了Vue開發(fā)網(wǎng)站seo優(yōu)化方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

因為用了vue等js的數(shù)據(jù)綁定機制來展示頁面數(shù)據(jù),爬蟲獲取到的html是模型頁面而不是最終數(shù)據(jù)的渲染頁面,搜索引擎是不回去執(zhí)行請求到的js。vue的項目都是ajax請求數(shù)據(jù),引擎爬蟲進入頁面獲取不到文字內(nèi)容,現(xiàn)在大多數(shù)解決方案是不采用ajax渲染數(shù)據(jù),而是采用server端渲染,也就是所謂的SSR。
目前基于vue的方案是Nuxt.js,同類型的也有React版的Nuxt.js所以服務端渲染就是盡量在服務器發(fā)送到瀏覽器前,頁面上是有數(shù)據(jù)可讓爬蟲進行爬取

方法一、利用prerender-spa-plugin插件將單頁面應用打包成多頁面

傳統(tǒng)的vue通過vue-cli腳手架搭建完成后要通過npm run build來打包生成最后的要放到線上的html代碼。
vue搭建的單頁面項目有各種優(yōu)點,易維護、代碼簡潔、開發(fā)體驗好等等。但是對于一些傳統(tǒng)的互聯(lián)網(wǎng)公司,vue單頁面卻有一個很致命的問題就是seo優(yōu)化的問題。下面是正常打包的vue單頁面目錄以及index.html的代碼。

在這里插入圖片描述

在這里插入圖片描述

目錄只有一個index.html文件并且這個html文件里面是沒有任何內(nèi)容的只有一個id為app的用來掛載vue實例的div。

谷歌搜索引擎已經(jīng)可以很好地支持單頁面的信息爬取,但是谷歌是國外所以不作考慮,百度是國內(nèi)最主要的搜索引擎,百度并不能爬取單頁面的數(shù)據(jù)所以這樣的項目如果上線了別人在百度搜索的時候很難找到這個項目。由于我目前公司的大部分項目都是需要做seo優(yōu)化的所以這個問題就丟到了我這里。

解決辦法

這里先提一下如果打包的時候報錯可能你需要npm安裝一下puppeteer(這東西有點大大概300多M)

第一步通過prerender-spa-plugin來進行vue.config.js的配置

npm isntall prerender-spa-plugin --save

這個東西是vue用來將單頁面應用打包成多頁面的第三方插件,安裝完成之后在vue.config.js配置配置如下

const PrerenderSPAPlugin = require('prerender-spa-plugin');
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer;
const webpack = require('webpack');
const path = require('path');
 
module.exports = {
    configureWebpack: config => {
        if (process.env.NODE_ENV !== 'production') return;
        return {
            plugins: [
                new PrerenderSPAPlugin({
                    // 生成文件的路徑,也可以與webpakc打包的一致。
                    // 下面這句話非常重要?。?!
                    // 這個目錄只能有一級,如果目錄層次大于一級,在生成的時候不會有任何錯誤提示,在預渲染的時候只會卡著不動。
                    staticDir: path.join(__dirname,'dist'),
                    // 對應自己的路由文件,比如a有參數(shù),就需要寫成 /a/param1。
                    routes: ['/','/about','/store_vuex','/cssAnimate','/connectMongoDB','/childParent','/child1','/elementUI'],
                    // 這個很重要,如果沒有配置這段,也不會進行預編譯
                    renderer: new Renderer({
                        inject: {
                            foo: 'bar'
                        },
                        headless: false,
                        // 在 main.js 中 document.dispatchEvent(new Event('render-event')),兩者的事件名稱要對應上。
                        renderAfterDocumentEvent: 'render-event'
                    })
                })
            ],
        };
    }
}

然后要將vue路由的模式改成history
最后mian.js入口文件中要加入這段代碼。其中render-event要和vue.config.js中的renderAfterDocumentEvent對應

new Vue({
  router,
  store,
  render: h => h(App),
  mounted () {
    document.dispatchEvent(new Event('render-event'))
  }
}).$mount('#app')

npm run build現(xiàn)在打包之后的目錄結構就變成了這樣了,以及每個文件夾的index.html代碼,
現(xiàn)在的html代碼就有了.vue文件中的template相關代碼,但是卻多了一個問題就是每個文件夾中的index.html代碼都引用了所有的js和css文件這是不利于seo優(yōu)化的。因此還沒有結束。

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

為什么會有這么多js和css呢,因為vue-cli在打包的時候每個.vue文件的script和style標簽都會打包成一個對應的js和css,即使你標簽里面什么都沒有寫。

第二步我是壓縮合并體積比較小的js和css文件

找了vue-cli的文檔沒有搜索到相關的資料,因此轉(zhuǎn)戰(zhàn)webpack
這個api可以用來設定一個最小的合并文件體積,在上邊的webpack配置中的plugins中加入這段代碼目測是10000=1kb

const webpack = require('webpack');
 
new webpack.optimize.MinChunkSizePlugin({
                    minChunkSize: 10000 // 通過合并小于 minChunkSize 大小的 chunk,將 chunk 體積保持在指定大小限制以上
                }),

然后npm run build還是那個目錄,但是js和css縮減了很多。

在這里插入圖片描述

方法二、Vue SSR (服務器端渲染)

簡而言之就是將本來要放在瀏覽器執(zhí)行創(chuàng)建的組件,放到服務端先創(chuàng)建好,然后生成對應的html將它們直接發(fā)送到瀏覽器,最后將這些靜態(tài)標記"激活"為客戶端上完全可交互的應用程序。

Vue SSR 相比 SPA(單頁應用)好處及壞處
1、好處
更好的 SEO,由于搜索引擎爬蟲抓取工具可以直接查看完全渲染的頁面。

更快的內(nèi)容到達時間(time-to-content),特別是對于緩慢的網(wǎng)絡情況或運行緩慢的設備。

2、壞處
1)開發(fā)條件所限。瀏覽器特定的代碼,只能在某些生命周期鉤子函數(shù)(lifecycle hook)中使用;一些外部擴展庫(external library)可能需要特殊處理,才能在服務器渲染應用程序中運行。

2)涉及構建設置和部署的更多要求。與可以部署在任何靜態(tài)文件服務器上的完全靜態(tài)單頁面應用程序(SPA)不同,服務器渲染應用程序,需要處于 Node.js server 運行環(huán)境。

3)更多的服務器端負載。在 Node.js 中渲染完整的應用程序,顯然會比僅僅提供靜態(tài)文件的 server 更加大量占用 CPU 資源(CPU-intensive - CPU 密集),因此如果你預料在高流量環(huán)境(high traffic)下使用,請準備相應的服務器負載,并明智地采用緩存策略。

到此這篇關于詳解Vue開發(fā)網(wǎng)站seo優(yōu)化方法的文章就介紹到這了,更多相關Vue seo優(yōu)化 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue 頁面狀態(tài)保持頁面間數(shù)據(jù)傳輸?shù)囊环N方法(推薦)

    Vue 頁面狀態(tài)保持頁面間數(shù)據(jù)傳輸?shù)囊环N方法(推薦)

    vue router給我們提供了兩種頁面間傳遞參數(shù)的方式,一種是動態(tài)路由匹配,一種是編程式導航,接下來通過本文給大家介紹Vue 頁面狀態(tài)保持頁面間數(shù)據(jù)傳輸?shù)囊环N方法,需要的朋友可以參考下
    2018-11-11
  • vue頁面加載閃爍問題的解決方法

    vue頁面加載閃爍問題的解決方法

    這篇文章主要介紹了vue頁面加載閃爍問題的解決方法,文中給大家提到了v-if 和 v-show 的區(qū)別,解決vue頁面加載時出現(xiàn){{message}}閃退的兩種方法,感興趣的朋友一起看看吧
    2018-03-03
  • Vue組件開發(fā)之LeanCloud帶圖形校驗碼的短信發(fā)送功能

    Vue組件開發(fā)之LeanCloud帶圖形校驗碼的短信發(fā)送功能

    Vue是目前使用較廣泛的三大前端框架之一,其數(shù)據(jù)驅(qū)動及組件化的特性使得前端開發(fā)更為快捷便利。本文在LeanCloud 短信轟炸與圖形校驗碼官方文檔 基礎上,從封裝需要出發(fā)開發(fā)一個簡單的短信圖形驗證Vue組件,具體內(nèi)容詳情大家參考下本文
    2017-11-11
  • Vue3.0 自己實現(xiàn)放大鏡效果案例講解

    Vue3.0 自己實現(xiàn)放大鏡效果案例講解

    這篇文章主要介紹了Vue3.0 自己實現(xiàn)放大鏡效果案例講解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • VUE使用echarts?5.0以上版本渲染器未導入錯誤問題

    VUE使用echarts?5.0以上版本渲染器未導入錯誤問題

    這篇文章主要介紹了VUE使用echarts?5.0以上版本渲染器未導入錯誤問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Vue項目判斷開發(fā)、測試、正式環(huán)境過程

    Vue項目判斷開發(fā)、測試、正式環(huán)境過程

    這篇文章主要介紹了Vue項目判斷開發(fā)、測試、正式環(huán)境過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • uni-appx和uni-app的區(qū)別以及該如何選擇詳解

    uni-appx和uni-app的區(qū)別以及該如何選擇詳解

    Uniapp?X是DCloud推出的下一代跨平臺應用開發(fā)引擎,基于?TypeScript?和原生渲染技術,性能顯著提升,接近原生應用,這篇文章主要介紹了uni-appx和uni-app的區(qū)別以及該如何選擇的相關資料,需要的朋友可以參考下
    2025-09-09
  • 關于element?ui中的el-scrollbar橫向滾動問題

    關于element?ui中的el-scrollbar橫向滾動問題

    這篇文章主要介紹了關于element?ui中的el-scrollbar橫向滾動問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 基于Vue3+Three.js實現(xiàn)一個3D模型可視化編輯系統(tǒng)

    基于Vue3+Three.js實現(xiàn)一個3D模型可視化編輯系統(tǒng)

    這篇文章主要介紹了基于Vue3+Three.js實現(xiàn)一個3D模型可視化編輯系統(tǒng),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • vue拖拽組件使用方法詳解

    vue拖拽組件使用方法詳解

    這篇文章主要為大家詳細介紹了vue拖拽組件的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12

最新評論

泗洪县| 宜都市| 石泉县| 德昌县| 寿光市| 饶平县| 佳木斯市| 凤凰县| 内乡县| 佳木斯市| 孟村| 千阳县| 阳西县| 松桃| 双鸭山市| 旺苍县| 砚山县| 呼伦贝尔市| 上栗县| 曲靖市| 孟连| 本溪市| 永吉县| 吉安市| 定安县| 崇州市| 浠水县| 罗山县| 潜山县| 海宁市| 灵丘县| 定西市| 兴业县| 南乐县| 莫力| 璧山县| 黎川县| 通道| 陆良县| 三江| 全州县|