vuejs 预渲染插件 prerender-spa-plugin 生成多页面 -- SEO

news/2024/5/9 22:22:57/文章来源:https://blog.csdn.net/qq_26282869/article/details/106101221

prerender-spa-plugin 与 vue-meta-info

前端vue等框架打包的项目一般为SPA应用,而单页面是不利于SEO的,现在的解决方案有两种:
1、SSR服务器渲染
  了解服务器渲染请进,这里不做记录。
2、预渲染模式
这比服务端渲染要简单很多,而且可以配合 vue-meta-info 来生成title和meta标签,基本可以满足SEO的需求

TIPS: 使用预渲染vue-router必须使用history模式

安装prerender-spa-plugin

// 安装 npm install prerender-spa-plugin --save

然后在webpack.prod.conf.js里面添加:

 // 头部引入 const PrerenderSPAPlugin = require('prerender-spa-plugin')const Renderer = PrerenderSPAPlugin.PuppeteerRenderer

在plugins里面添加:

    // 配置PrerenderSPAPluginnew PrerenderSPAPlugin({// 生成文件的路径,也可以与webpakc打包的一致。staticDir: path.join(__dirname, '../dist'),// 对应自己的路由文件,比如index有参数,就需要写成 /index/param1。routes: ['/register', '/login','/help','/suggest','/zhifuCharge'],//压缩htmlminify: {collapseBooleanAttributes: true,collapseWhitespace: true,decodeEntities: true,keepClosingSlash: true,sortAttributes: true},// 这个很重要,如果没有配置这段,也不会进行预编译renderer: new Renderer({inject: {foo: 'bar'},headless: false,renderAfterTime: 5000,// 在 main.js 中 document.dispatchEvent(new Event('render-event')),两者的事件名称要对应上。renderAfterDocumentEvent: 'render-event'})}),

最后在main.js里面修改:

new Vue({el: '#app',router,components: { App },template: '<App/>',// 添加mounted,不然不会执行预编译mounted () {document.dispatchEvent(new Event('render-event'))}
})

到这里预编译的配置修改就完成了,执行 npm run build 查看打包后的dist文件就会发现如下结构:在这里插入图片描述

安装 vue-meta-info 配置title和meta:

npm install vue-meta-info --save

在main.js引入:

import MetaInfo from 'vue-meta-info'
Vue.use(MetaInfo)

在相应的vue页面中配置:

<script>
export default {// 配置title和meta数据metaInfo: {title: '我是一个title',meta: [{name: 'keywords',content: '关键字1,关键字2,关键字3'},{name: 'description',content: '这是一段网页的描述'}]},data () {return {}}
}
</script>

组件内静态使用 metaInfo

<template>...
</template><script>export default {metaInfo: {title: 'My Example App', // set a titlemeta: [{                 // set metaname: 'keyWords',content: 'My Example App'}]link: [{                 // set linkrel: 'asstes',href: 'https://assets-cdn.github.com/'}]}}
</script>

如果你的 title 或者 meta 是异步加载的,那么你可能需要这样使用

<template>...
</template><script>export default {name: 'async',metaInfo () {return {title: this.pageName}},data () {return {pageName: 'loading'}},mounted () {setTimeout(() => {this.pageName = 'async'}, 2000)}}
</script>

到这里 prerender-spa-plugin 与 vue-meta-info 就全部完成了

问题: Chromium revision is not downloaded. Run “npm install”

在使用依赖puppeteer的组件com时,使用npm install 安装组件,报错:
Chromium revision is not downloaded. Run “npm install”
1 先安装 puppeteer
2 删除 com组件所在项目的所有modules,即删除 node_modules。 然后重装 npm install。

说明:

1 对于 安装 puppeteer
两种思路,全局安装

sudo npm install  -g   puppeteer

安装过程中,会提示 chromium 被安装到 /usr/lib/node_modules/puppeteer/.local-chromium/(如果失败请走下面的解决2)

npm install  puppeteer

解决2:

通过修改puppeteer_download_host的方式,加速下载chromium的下载
加速下载命令如下:

npm config set puppeteer_download_host=https://npm.taobao.org/mirrors

然后再次执行npm i,重启安装过程。就可以顺利安装chromium了。截图如下:
当然,上述设置之后,是修改了npm的配置文件的。可以通过下面的命令,查看相关的修改。

npm config edit

可以看到,增加了新的设置内容:

puppeteer_download_host=https://npm.taobao.org/mirrors

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_789015.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面向Web开发人员和网站管理员的Web缓存指南

这是一篇知识性的文档&#xff0c;主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中。为了简要起见&#xff0c;某些实现方面的细节被简化或省略了。如果你更关心细节实现则完全不必耐心看完本文&#xff0c;后面参考文档和更多深入阅读部分可能是你…

面向Web开发人员和网站管理员的Web缓存指南

这是一篇知识性的文档&#xff0c;主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中。为了简要起见&#xff0c;某些实现方面的细节被简化或省略了。如果你更关心细节实现则完全不必耐心看完本文&#xff0c;后面参考文档和更多深入阅读部分可能是你…

MySQL在大型网站的应用架构演变

写在最前: 本文主要描述在网站的不同的并发访问量级下&#xff0c;Mysql架构的演变。 可扩展性 架构的可扩展性往往和并发是息息相关&#xff0c;没有并发的增长&#xff0c;也就没有必要做高可扩展性的架构&#xff0c;这里对可扩展性进行简单介绍一下&#xff0c;常用的扩展手…

最终解决 mouseenter, mouseleave , mouseout mousehover mousemove等事件的区别?

在jquery中, html页面的div的显示和隐藏, 修改等的功能, 最终都要由 事件 触发来引用, 不管是键盘事件, 还是鼠标事件...mouseenter和mouseleave是成对对应的, mouseover & mouseout是对应的, mousedown和mouseup是对应的没有mousehover, 只有hover 事件函数, hover是模拟&…

dedecms php 文件修改,织梦DEDECMS网站怎么修改data目录名称

织梦DEDECMS网站怎么修改data目录名称&#xff1f;最近dedecms漏洞频繁出现&#xff0c;织梦官方也给出了很多相应的措施。今天给大家讲的就是dedecms官方建议用户修改data文件名称。 对于虚拟主机来说&#xff0c;有些虚拟主机限制&#xff0c;不给移动到web目录以外&#xff…

怎么让你的网站快速飞

2019独角兽企业重金招聘Python工程师标准>>> 第一章 怎么让你的网站快速飞 1.1 服务器、VPS、空间的介绍 服务器 服务器&#xff0c;也称伺服器&#xff0c;是提供计算服务的设备。由于服务器需要响应服务请求&#xff0c;并进行处理&#xff0c;因此一般来说服务器…

地址栏加不加www都可以访问网站 -- -- -- -- 配置

需求&#xff1a;加不加www都可以访问网站 www.abc.comabc.com 需要配置几个地方&#xff1a; 一、 服务器&#xff08;以阿里云服务器为例&#xff09; 需要插入两条记录&#xff0c;可从新手指导中配置&#xff0c;生效时间为TTL中配置的时间内 二、 服务器电脑中&#xf…

大型网站架构系列:消息队列(二)

本文是大型网站架构系列&#xff1a;消息队列&#xff08;二&#xff09;&#xff0c;主要分享JMS消息服务&#xff0c;常用消息中间件&#xff08;Active MQ&#xff0c;Rabbit MQ&#xff0c;Zero MQ&#xff0c;Kafka&#xff09;。【第二篇的内容大部分为网络资源的整理和汇…

web网站开发培训,JavaScript的if关键字

01 哪些专业转CS成功率高&#xff1f; 根据数据统计&#xff0c;在培养的前端开发工程师人才中&#xff0c;成功拿到offer&#xff0c;约38%是计算机专业毕业&#xff0c;62%都是非计算机专业转行的学员&#xff01; 在成功拿到大公司前端开发工程师offer的非计算机专业同学中…

Springboot+JPA+Thymeleaf 校园博客完整小网站

本文所属【知识林】&#xff1a;http://www.zslin.com/web/article/detail/35此项目是一个比较简易的校园博客。麻雀虽小五脏俱全&#xff0c;虽然是比较简易的但是涉及的知识点还是比较全面的。 此项目涵盖了【知识林】中Springboot和Thymeleaf中所有知识点的内容。 主要功能有…

Nginx网站根目录更改及导致403 forbidden的问题解决

最近因为工作需要&#xff0c;要将Nginx网站根目录更改下&#xff0c;通过网上的一些教程更改后&#xff0c;但发现测试的时候一直提示403 forbidden错误&#xff0c;后台通过一个朋友的提示也解决了&#xff0c;所以现在将详细的步骤分享给大家&#xff0c;有需要的朋友们可以…

【必看】分析各大招聘网站

目前市场上的招聘网站鱼龙混杂&#xff0c;人力资源市场这块大蛋糕谁都想分一块。工作对于每个人来说都是人生中的一件大事&#xff0c;所以如何选择一个适合自己的经验水平等各方面的正规招聘网站就显得尤为重要&#xff0c;那么今天小编就从客观角度&#xff0c;为大家分析市…

二线视频网站突围战

在并购、自制剧、社交视频等各种概念的炒作之下&#xff0c;2013年毫无悬念地成为国内视频网站最热闹的年份。然而这些大戏并不仅仅是一线大佬们的狂欢宴&#xff0c;二线视频企业也不甘落寞&#xff0c;纷纷出击。在这场异常残酷的竞争中&#xff0c;大家都在用生命刷着存在感…

一个做得很好的电子产品测评类网站:Zealer

无意中发现了一个做得很好的电子产品测评类网站——Zealer。http://www.zealer.com/ 站长王自如很有个人魅力。尤其他在老罗发布会点评的那期节目里。 与他类似&#xff0c;我也是做质量评测的&#xff0c;不过是视频的质量评测。我明白做这种第三方评测是很难盈利的。因为一旦…

最简单的视频网站(JavaEE+FFmpeg)

本文记录一个最简单的视频网站系统。此前做过一些基于JavaEE中的SSH (Strut2 Spring Hibernate)的网站系统&#xff0c;但是一直没有做过一个视频网站系统&#xff0c;所以就打算做一个“精简”的视频网站系统&#xff0c;以方便以后测试以及学习使用。本视频网站支持直播&am…

8x8点阵字体在线生成器_超好玩的生成器工具网站,沙雕又有趣!打开新世界

1. 在线抠图、证件照生成器 :http://t.cn/A67EE9UQ2.爱情小说生成器 :同人小说生成器3.Cp短打生成器 :http://t.cn/Aid6pD1l4.爱豆翻牌体验器:爱豆翻牌体验器5.口罩头像生成器:口罩护目镜头像生成器6.今日吃什么:今天晚饭吃神马&#xff1f;7.记仇表情生成器:bangbang93.lab()8…

王道操作系统ppt课件_推荐5个做PPT课件的免费模板网站

老师做课件找模板网站在于精不在多&#xff0c;以下我就精心整理出来5个免费模板网站&#xff0c;推荐给大家。最主要是免费&#xff01;免费&#xff01;免费&#xff01;1、Office Plus&#xff08;http://www.officeplus.cn/&#xff09;官方出品&#xff0c;必属精品&#…

python搭建小程序后端_Python开源Web, CMF,可做微信小程序后端, 网站后端等.Restful Api...

dev(开放更新中,可在Tag中可以选择以往的其他版本) 当前更新比较多&#xff0c;请及时更新新版本 低版本更新到v2.2后&#xff0c;如果出现ROOT用户权限问题&#xff0c;[注销登录]后再次登录 ** 注意&#xff1a;更新到v2.2的童鞋请先看这篇文章 ** Version Status Other 开发…

Forefront TMG 2010 篇(七)--本地网站不需要使用代理

上文记录到使用WEB代理上网&#xff0c;而且添加到允许组才可以正常的浏览网页&#xff0c;但是不知大家有没有发觉我没有添加例外&#xff0c;如果没有添加的话&#xff0c;本地的网站时会提示不能正常的浏览&#xff0c;所以我们需要添加进去。 直接把完整的贴出来吧&#xf…

新代系统cnc怎样连接电脑_电脑故障网络修复不能上网站打不开网络连接维修异常系统问题苹果...

拍前必读更多的电脑问题有我们就够了1.在维修过程中会导致C盘或其它盘数据覆盖,无法恢复,买家务必在维修之前做好数据备份,如不备份导致数据丟失,责任全由买家负责。2.在维修之前,本店维修师并不确定您的电脑是否有隐形硬件问题,如在维修过程中发现硬件问题,会建议您使用其它方…