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

news/2024/5/20 13:00:43/文章来源:https://blog.csdn.net/weixin_39631344/article/details/118298081

前言:当前 SPA 架构流行的趋势如日中天,前后端分离的业务模式已经成为互联网开发的主流方式,但是 单页面 应用始终存在一个痛点,那就是 SEO,

对于那些需要推广,希望能在百度搜索时排名靠前的网站而言,使用单页面应用的是无法被 百度的 蜘蛛 爬到的,为此,众多流行的 MVVM 框架都推出了

很多解决方案,有官方的也有三方的,VUE也不例外,本文章就来分享一下 vue-cli 结合 prerender-spa-plugin 插件这种预渲染的 SEO 优化解决方案

1,使用 vue-cli 创建一个项目,安装依赖 并启动 (如果不会使用脚手架创建项目或 对 VUE 框架不太熟的,建议先系统学习 VUE 基础部分在看该文章)

vue init webpack vue-prerender

cd vue-prerender

npm install

npm run dev

2,脚手架创建的项目默认会给我们 一个 名称为 HelloWorld.vue 的主键,我们将其内容修改为

/test

export default {

name: 'HelloWorld',

data() {

return {}

}

}

3,我们在创建一个名为 Test.vue 的组建,内容如下

回到首页

export default {

name: "Test",

data() {

return {}

}

}

4,修改 src/router/index.js 路由文件如下,特别注意这里要将 mode 设置为 history 模式,目前预渲染只支持该种模式

import Vue from 'vue'

import Router from 'vue-router'

import HelloWorld from '../components/HelloWorld'

import Test from '../components/Test'

Vue.use(Router)

export default new Router({

mode: 'history',

routes: [

{

path: '/',

name: 'HelloWorld',

component: HelloWorld

},

{

path: '/test',

name: 'Test',

component: Test

}

]

})

5,这样我们就实现了两个互相跳转的路由,我们可以 使用 npm run dev 命令启动项目测试一下 (src 目录结构如下)

712f1dd9e7d5652a405dc426aaa17911.png

6,测试无误后,我们下载预加载插件 prerender-spa-plugin

npm install prerender-spa-plugin -D

7,我们修改 build/webpack.prod.conf.js 配置文件,将预渲染插件加入进去 (我们一般会将网站的首页 和 一些变动不大的页面做预渲染,变动频繁的页面不适合改插件)

const PrerenderSpaPlugin = require('prerender-spa-plugin')

plugins: [

// 配置 prerender-spa-plugin 预渲染插件

// 生成文件的路径,此处需要与 webpack 打包地址一致,所以直接使用 config.build.assetsRoot

// 数组为 需要预渲染的 路由,基本上是首页或者 变动不大的列表页等等,目前只支持 h5 history 方式

new PrerenderSpaPlugin(

path.join(config.build.assetsRoot),

['/', '/test']

),

......

8,完成上面的步骤我们就可以开始编译项目了

npm run build

9,编译后的 dist 目录结构如下,其中 index.html 对应路由 '/', test/index.html 对应路由 '/test',我们可以打开看看,里面的内容很多

c2353905cae3355d742398cb59337643.png

10,注意,不要直接把 index.html 拖动到浏览器访问,那样会有路径的问题,我们可以搭建一个静态服务器来测试打包后的项目是否有效

11,我们本着一事不烦二主的原则,就直接使用 node 的 express 框架 搭建一个静态服务器做测试使用

npm i express -D

12,我们在项目根目录下创建一个脚本 server.js,内容如下

const path = require('path')

const express = require('express')

const app = express();

app.use(express.static(path.join(__dirname, 'dist')))

app.listen(8080)

13,我们在 package.json 文件中添加启动脚本,下面代码标红的部分为 添加的内容

"scripts": {

"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",

"start": "npm run dev",

"build": "node build/build.js",

"server": "node server.js"

},

14,启动静态服务器

npm run server

15,在浏览器中输入 localhost:8080 访问打包生成后的页面,一切 OK

3e4c48cb61c2a45dad0cc347fca60c23.png

16,优缺点分析

优点:简单易上手,相对于一些需要服务器渲染的方式如 vue 官方的 vue-ssr,该方法最终将代码打包成静态资源,可以部署到任何服务器上,不依赖于服务器就能满足 SEO 的要求

缺点:只支持 h5 history,并且不太适合变动较频繁的页面

处理 Vue 单页面应用 SEO 的另一种思路

vue-meta-info 官方地址: monkeyWangs/vue-meta-info (设置vue 单页面meta info信息,如果需要单页面SEO,可以和 prerender-spa-plu ...

单页应用seo收录神器 -- seo-mask

前言 看到标题的人肯定会问,seo-mask是什么,为什么可以解决单页应用seo无法被收录的难题呢? 简单来讲seo-mask做的就是为已经发布线上运营的的单页应用项目建立另一个简单的利于seo的镜像 ...

Vue 单页面应用 SEO SPA single page application advantages and disadvantages

处理 Vue 单页面应用 SEO 的另一种思路 - muwoo - 博客园 https://www.cnblogs.com/tiedaweishao/p/7493971.html SPA网站SEO完美 ...

处理 Vue 单页面应用 SEO

由于在vue单页应用中title只设定在入口文件index.html,如果切换路由,title怎么更换? 在路由router中设置meta: { path:'/chooseBrand', compon ...

如何在vue单页应用中使用百度地图

作为一名开发人员,每次接到开发任务,我们首先应该先分析需求,然后再思考技术方案和解决方案.三思而后行,这是一个好的习惯. 需求:本项目是采用vue组件化开发的单页应用项目,现需要在项目中引入百度的地图 ...

解决vue单页路由跳转后scrollTop的问题

作为vue的初级使用者,在开发过程中遇到的坑太多了.在看页面的时候发现了页面滚动的问题,当一个页面滚动了,点击页面上的路由调到下一个页面时,跳转后的页面也是滚动的,滚动条并不是在页面的顶部 在我们写路 ...

vue单页应用中 返回列表记住上次滚动位置、keep-alive缓存之后更新列表数据 那点事

实践场景需求 产品列表中,滚动到一定位置的时候,点击查看产品信息,后退之后,需要回到原先的滚动位置,这是常见的需求 所有页面均在router-view中,暂时使用了keep-alive来缓存所有页面, ...

基于html5海贼王单页视差滚动特效

分享一款基于html5海贼王单页视差滚动特效是一款流行滑落网页特效代码.效果图如下: 在线预览   源码下载 实现的代码:

< ...

基于vue单页应用的例子

代码地址如下:http://www.demodashi.com/demo/13374.html 目录结构 src目录 主要的代码目录 components 存放项目组件 router 路由文件 sto ...

随机推荐

&lbrack;C&num;&rsqb;Task异步操作

1.代码示例 using System; using System.Threading; using System.Threading.Tasks; namespace ConsoleApplicat ...

Vi和Vim的区别及联系

它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面.vim的这些优势主要体现在以下几个方面:1.多级撤消我们知道在vi里,按 u只能撤消上次命 ...

poj 3613 floyd &plus; 快速幂

题意:本题的大意就是问从S 到 T 经过边得个数恰为k的最短路是多少. 思路:对于邻接矩阵每一次floyd求的是每个点间的最短距离,则n次floyd就是每个点间n条路的最短距离(可以重复边); 但是由 ...

2&period;1命令行和JSON的配置「深入浅出ASP&period;NET Core系列」

希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 命令行配置 1.新建控制台项目 2.nuget引入microsoft.aspnetcore.all 这里要注意版本 ...

Linux文件同步

简介 文件实时同步对于运维是个很常见的需求. 如集群的机器,需要上传个文件,之前的步骤是每台服务器分别上传. 做文件同步以后,只上传一台,其他机器自动同步. 目前实现实时同步的主流方案有 rsync+ ...

IE6的3像素bug

IE6的3像素bug3像素bug是IE6的一个著名的bug,当浮动元素与非浮动元素相邻时,这个3像素的Bug就会出现.看下面这个左列固定,右列液态的例子,css代码如下: body { margin: ...

python利用socket写一个文件上传

1.先将一张图片拖入‘文件上传’的目录下,利用socket把这张图片写到叫‘yuan’的文件中 2.代码: #模拟服务端 import subprocess import os import sock ...

Android在onCreate中获取控件的宽高

在某些需求下,我们需要在onCreate的时候就获取到控件的宽高,但是如果直接用view.getWidth()或view.getHeight()会得到0.这是因为在onCreate执行的时候,控件还没 ...

XE 安装后C盘占用太大,C盘空间清理

XE安装完C盘可以清理的垃圾缓存文件 C:\ProgramData\{0DE47792-19BD-4AF4-B9CF-6378FBA44825}  XE6 9个G,xe7 18G XE6如此,XE7安 ...

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

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

相关文章

织梦dedecms网站首页标题被恶意非法篡改乱码解决办法!!

dedecms被篡改问题让很多人头疼&#xff0c;还有的网站中毒了会跳转到BC网站&#xff0c;赌博、彩票网站上去了&#xff0c;网站在百度搜索出现&#xff1a;百度网址安全中心提醒您&#xff1a;该站点可能受到黑客攻击&#xff0c;部分页面已被非法篡… 近期&#xff0c;我的诸…

酷站欣赏:33个优秀的淡黄色风格网站设计作品

选择颜色是网页设计的一个重要方面。Web 和图形设计人员会仔细挑选一种颜色&#xff0c;以吸引读者的注意力。黄色作为一种明亮的和令人兴奋的颜色&#xff0c;比较能够抓住读者的注意力。在这篇文章中&#xff0c;我挑选了33个优秀的黄色风格网站&#xff0c;希望能够带给你灵…

微软StockTrader 2.03 学习笔记(3)--配置网站和配置服务在StockTrader中的使用示例

有关配置网站和配置服务在StockTrader 3.0中使用&#xff0c;微软在其提供的配置说明文档中已经做了很详细的说明。基本上是一步一步傻瓜式的阐述的&#xff0c;在这里也就简单的在文档中摘选一下重点简单的做一下记录&#xff0c;理一下整个配置使用过程。 首先先简单介绍一下…

评估您的网站/博客的价值

http://www.stimator.com/ 这个网站可以对你的网站进行价值评估&#xff0c;可以试一下 转载于:https://www.cnblogs.com/andylaufzf/archive/2009/03/27/1423379.html

[转载]杨建:网站加速--动态应用篇 (上)

原文地址&#xff1a;杨建&#xff1a;网站加速--动态应用篇 (上)作者&#xff1a;iyangjian2005997--提升性能的同时为你节约10倍以上成本From: http://blog.sina.com.cn/iyangjian一, 引子二&#xff0c;总体结构图三&#xff0c;系统结构综述四&#xff0c;环境配置以及底层…

ASP.NET的SEO: 服务器控件背后——SEO友好的Html和JavaScript

本系列目录 假设你需要从一个页面转向其他页面&#xff0c;下面有很多种方式&#xff0c;你是如何选择的呢&#xff1f;你能清晰的说明理由么&#xff1f;<%--链接的表现形式--%><asp:HyperLink ID"HyperLink1"runat"server"NavigateUrl"~/…

Web开发者必须收藏的十大网站【转】

http://article.yeeyan.org/view/158539/110702 对我们这些Web开发者来说&#xff0c;不计其数的网站&#xff0c;其中有些对我们来说是相当有用的工具。在本文中&#xff0c;我汇编了10个顶有用的网站&#xff0c;可以说每个开发者都应当将这些网站存为自己的书签。 Mysql For…

分享12个非常好的免费矢量资源网站

在工作中&#xff0c;Web设计师经常需要到网上查找一些免费资源以更快更好的完成设计任务。这些资源都是到用时方恨少啊&#xff0c;所以今天本文与大家分享12个非常好的免费矢量资源网站&#xff0c;大家可收藏起来备用 :) QVectors Vecteezy Dezignus TutorialBlog Vector Po…

最新30佳精美 PSD 网站模板免费下载

您可能还喜欢 分享45款高质量的免费(X)HTML/CSS模板最新30佳精美 PSD 网站模板免费下载寻找网页设计灵感的27个最佳网站推荐60佳灵感来自大自然的网页设计作品欣赏分享100佳精美的作品集网站设计案例曾与大家分享过45款高质量的免费(X)HTML/CSS模板&#xff0c;今天&#xff0c…

向网页设计师推荐15个很棒的网站

网络上各种各样的社区网站数不胜数&#xff0c;但专注于创意设计的很少。今天这篇文章收集了15个非常好的专注于设计的网站推荐给设计师们&#xff0c;不管是学习先进的设计理念&#xff0c;还是寻找免费资源与工具&#xff0c;这些网站都是很不错的去处&#xff0c;记得推荐和…

网站使用微软雅黑需要版权吗

转自 :http://rpsh.net/archives/font-licensing-for-the-web/ 网站能使用微软雅黑字体吗?是否会构成侵权&#xff1f;微软雅黑有版本吗? 最近做网站,听说雅黑有版权不能用,但是使用了黑体 网站又贼丑无比,惨不忍睹 资深架构师搜了个这个文章, 分享给大家 结论: 在 CSS 中使…

网站压力测试工具-Webbench源码笔记

Ubuntu 下安装使用 1、安装依赖包CTAGS sudo apt-get install ctage 2、下载及安装 Webbench http://home.tiscali.cz/~cz210552/webbench.html 解压&#xff1a; tar -zxvf webbench-1.5.tar.gz 切换到解压后的目录&#xff1a; cd webbench-1.5 编译&#xff1a; make 安装&a…

(转)网站优化:测试网站速度的8款免费工具推荐

网站的加载速度是决定网站成败的重要因素&#xff0c;值得站长特别关注。原因很简单&#xff0c;没有人愿意为了打开一个网页而等老半天&#xff0c;换句话说&#xff0c;如果你的网站打开速度 很慢&#xff0c;将流失大量的访客&#xff0c;甚至出现多米诺效应的不良影响&…

精品欣赏:30个养眼的精美自然风光的网站设计《上篇》

设计师使用精致的充满吸引力的宽屏图片作为背景&#xff0c;给来网站带来一种别样的特色。现在网络上有成千上万的图片可供选择&#xff0c;根据您的设​​计和需求&#xff0c;你可以把普通图像变成一个功能强大的工具&#xff0c;以吸引你的客户。 让我们来仔细看看这些自然景…

thinkphp5.1--快速生成网站首页

打开网站首页&#xff0c;右键选择另存为 把另存的网站首页拖放到phpstorm,复制代码&#xff0c;用JS/HTML格式化工具转换代码格式 将格式化后的网站首页做为项目首页 app\index\controller\Index.php namespace app\index\controller;use think\Controller;class Index ext…

Windows Server 2008 R2中IIS7.5配置完网站权限不足问题的解决办法:

Windows Server 2008 R2中IIS7.5配置完网站权限不足问题的解决办法:常见问题&#xff1a;HTTP 错误 500.0 - Internal Server Error无法显示页面&#xff0c;因为发生内部服务器错误。模块 IsapiModule 通知 ExecuteRequestHandler 处理程序 AboMapperCustom-20607 错误代码 0x…

大型网站系统架构的演化(转)

前言 一个成熟的大型网站&#xff08;如淘宝、京东等&#xff09;的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性&#xff0c;它总是随着用户量的增加&#xff0c;业务功能的扩展逐渐演变完善的&#xff0c;在这个过程中&#xff0c;开发模式、技术架构、设计…

5首页加载慢_优秀网站制作注意事项 吸人眼球5大妙招

随着建站行业和建站技术的不断发展和深入&#xff0c;在网站制作过程中&#xff0c;如何抓住浏览者的眼球&#xff0c;吸引他们的注意力成为了网页设计师们考虑的核心问题&#xff0c;一个优秀专业的网站&#xff0c;在制作过程中都有哪些注意事项&#xff0c;今天专业的建站公…

生成结合图表_闭着眼也能做出高颜值的Excel图表,你只需这3个网站

今天的推文比较简单&#xff0c;为大家分享3个可以在线制作图表的宝藏网站。欢迎大家在看完之后&#xff0c;在留言区选出你心中觉得最实用的网站&#xff0c;或者跟大家分享你觉得更好用的网站。01. 图表秀全能又方便的在线图表制作神器https://www.tubiaoxiu.com/一款在线图表…

为什么你不应该自行更新 Drupal 网站?

&#xff08;译注&#xff1a;这篇文章主要还是针对于非专业人员及个人Drupal站长&#xff0c;对于专业的 Drupal 团队和公司而言 Drupal 的升级更新都有规范的操作流程&#xff0c;完全是家常便饭&#xff0c;不可能出现文中出现的这些情况。尽管如此&#xff0c;里面也还是有…