前言:vue单页面对seo不友好,所以我打算通过预渲染来解决下seo问题。

目前我知道有2种方法,

(1)SSR渲染(服务器)

(2)prerender-spa-plugin插件预渲染(部分路由)(好像不能全部路由)

在这里我使用的是第二个方法

1、安装插件prerender-spa-plugin

npm install prerender-spa-plugin --save
// or   2个中选1个方法安装
npm install prerender-spa-plugin --save

2、在vue.config.js里面配置需要预渲染的页面

const webpack = require('webpack')
const PrerenderSPAPlugin = require('prerender-spa-plugin');
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer;
const path = require('path');module.exports = {publicPath: '/',configureWebpack: config => {if (process.env.NODE_ENV !== 'production') return;return {plugins: [new webpack.optimize.MinChunkSizePlugin({minChunkSize: 10000 // 通过合并小于 minChunkSize 大小的 chunk,将 chunk 体积保持在指定大小限制以上}),new PrerenderSPAPlugin({// 生成文件的路径,也可以与webpakc打包的一致。// 下面这句话非常重要!!!// 这个目录只能有一级,如果目录层次大于一级,在生成的时候不会有任何错误提示,在预渲染的时候只会卡着不动。staticDir: path.join(__dirname, 'dist'),// 对应自己的路由文件,比如a有参数,就需要写成 /a/param1。routes: ['/', '/swaps', '/eip-1559', '/faqs'],// 这个很重要,如果没有配置这段,也不会进行预编译renderer: new Renderer({inject: {foo: 'bar'},headless: false,// 在 main.js 中 document.dispatchEvent(new Event('render-event')),两者的事件名称要对应上。renderAfterDocumentEvent: 'render-event'})}),],};},}

其中有一个坑,如果打包之后部署到服务器,刷新出现路由地址自动添加/,并且页面样式丢失。那么可能是

publicPath: '/' 

这个地方,你可能是’./‘,但是在预渲染这里要变成’/‘,才不会出现这个问题

3、在main.js里面配置

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

4、进行打包

npm run build

5、打包出现多个页面就成功

vue使用预渲染prerender-spa-plugin相关推荐

  1. vue服务器端预渲染prerender-spa-plugin的实践

    对一个网站来说,seo是非常重要的一块内容.最近用vue做了一个网站,很自然地找到了Vue SSR 指南.我做的网站只有几个注重营销的页面需要seo,发现在这种场景下用prerender-spa-pl ...

  2. 预渲染vue.js应用程序(使用node或laravel)

    服务器端渲染现在非常流行.但它也并非没有缺点.预渲染是一种替代方法,在某些情况下甚至可能更好.下面我们来看一下如何预渲染vue.js应用程序. 在本文中,我们将探讨预渲染如何与vue.js一起工作,并 ...

  3. ajax div 赋值重新渲染_优化向:单页应用多路由预渲染指南

    前言 Ajax 技术的出现,让我们的 Web 应用能够在不刷新的状态下显示不同页面的内容,这就是单页应用.在一个单页应用中,往往只有一个 html 文件,然后根据访问的 url 来匹配对应的路由脚本, ...

  4. 构建时预渲染:网页首帧优化实践

    前言 自JavaScript诞生以来,前端技术发展非常迅速.移动端白屏优化是前端界面体验的一个重要优化方向,Web 前端诞生了 SSR .CSR.预渲染等技术.在美团支付的前端技术体系里,通过预渲染提 ...

  5. 对vue服务端渲染的理解以及其使用场景

    理解 本质上,服务端渲染其实是生成了应用程序的"快照",将vue及其对应的库运行在服务端,令其去访问接口去预加载数据,然后将获取到的数据作为组件的初始状态 首先拉取数据,此后,组件 ...

  6. Vue SPA项目SEO优化之预渲染Prerender-spa-plugin

    目的 由于基于Vue的SPA项目普通的爬虫无法爬取项目的静态文本的内容,通过预渲染插件prerender-spa-plugin解决vue的SPA项目的SEO问题. 可以看到项目编译后的index.ht ...

  7. prerender ajax,Vue Prerender.io 预渲染seo优化

    前言 目前 Vue单页面应用在前端界混的风生水起,它的开发思想使得我们能真正做到前后端分离.解耦.单页面应用使用浏览器动态解析JS,呈现出最终的页面,用户体验比较好,网站性能也提高不少.但网络爬虫并不 ...

  8. prerender html5,HTML5 VUE单页应用 SEO 优化之 预渲染(prerender-spa-plugin)

    前言:当前 SPA 架构流行的趋势如日中天,前后端分离的业务模式已经成为互联网开发的主流方式,但是 单页面 应用始终存在一个痛点,那就是 SEO, 对于那些需要推广,希望能在百度搜索时排名靠前的网站而 ...

  9. vue使用prerender预渲染配合vue-meta实现单页面实现SEO优化

    公司项目在已在开发完成的情况下通知需要做SEO优化.因为项目使用的是vue做的单页面应用,顿时人都不好了,只好网上搜罗出来一些配置(其实是另一个带我的老大哥他做的,但是他要走了,工作交接给我, 我需要 ...

最新文章

  1. 1029 Median
  2. GBDT原来是这么回事
  3. 我们前端忙成狗人家后端写SQL?
  4. Fiddler抓包1-抓firefox上https请求
  5. 无法使用此安装程序来安装 .net framework_NuGet是什么?理解与使用(上)
  6. php如何将mysql数据库中的admin字段赋值给session_转php中使用session_set_save_handler()函数把session保存到MySQL数据库实例...
  7. iOS学习:CAShapeLayer与DrawRect对比,与UIBezierPath画图形
  8. CRT、ATL、MFC 三者介绍和关系
  9. Atitit.数据检索与网络爬虫与数据采集的原理概论
  10. 信息学奥赛一本通-第一章答案合集
  11. 【PHP基础】实现PHP与SQL数据库的连接
  12. linux卸载软件wine,Ubuntu 卸载wine
  13. 报错javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException
  14. windows无法连接到某个wifi_Windows7无法连接到网络几招解决无线网络办法
  15. linux服务器添加双路由,Linux添加原路返回路由 解决 服务器电信+网通双线双网卡双IP访问 问题...
  16. http://jackwang1.blog.163.com/blog/static/39534478201182651610201/
  17. globalsign代码签名最新步骤
  18. rt-thread物联网开发板mqtt实验
  19. CFD网格你应该了解的常识
  20. Python 批量合并多个txt文件

热门文章

  1. mooc网站 常用的10个地址
  2. 大数据培训技术Kibana
  3. 为什么?为什么程序员总是加班!
  4. 高衍射效率的偏振无关透射光栅的分析与设计
  5. 振动传感器的c语言程序,单片机红外对射传感器实验详解 附程序源码
  6. 前端架构师-week7-B端项目需求分析和架构设计
  7. 什么是web前端和后端?
  8. 重装金蝶专业版后服务器不显示错误,金蝶软件KIS系统客户端连接服务器时,有时会有连接不上的情况,提示服务器不是有效的,请重新设置...
  9. python与物理结合_Python物理学高效计算(完整版高清带目录)_IT教程网
  10. UVA-12171 雕塑 题解答案代码 算法竞赛入门经典第二版