因爲基於Vue的SPA項目普通的爬蟲沒法爬取項目的靜態文本的內容,經過預渲染插件prerender-spa-plugin
解決vue的SPA項目的SEO問題。css
能夠看到項目編譯後的index.html
中只有一些HTML和js,css文件的引用,而無關於內容的靜態文本。固然你也能夠添加meta的keyword和descrption,去簡答的描述一些關於網站的內容。html
curl xxxx.com
// 返回的結果發現只有簡單的HTML和js引用,無相關的靜態文本
複製代碼
Vue預渲染插件Prerender-spa-plugin
GitHub地址vue
主要經過Webpack
插件的方式,控制編譯出來的靜態文件的方式。webpack
npm install prerender-spa-plugin@2.1.0 --save
複製代碼
Webpack簡單配置git
// webpack.conf.js
var path = require('path')
var PrerenderSpaPlugin = require('prerender-spa-plugin')
module.exports = {
// ...
plugins: [
new PrerenderSpaPlugin(
// Absolute path to compiled SPA
path.join(__dirname, '../dist'),
// List of routes to prerender
[ '/', '/about', '/contact' ]
)
]
}
複製代碼
dist
目錄下,多出來about
,contact
這樣的目錄,這個目錄下會有對應的index.html
文件;這份文件是對應路由生產後的靜態頁面,便於SEOcurl xxxx.com
// 會發現會講渲染後的頁面返回,而不是剛開始的以後簡單的js引用的初始頁面
複製代碼
Apache
或Nginx
等訪問,匹配相應的路由訪問導指定目錄下index.html文件,便可。// 配置完成後,能夠查看效果,每一個頁面返回的都是編譯後的靜態文件
curl xxxx.com/about
curl xxx.com/contact
複製代碼
遇到的幾個問題:github
/
符號dist/static/
目錄下的,而不是dist/about/static
這種