因为基于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
这种