博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
prerender-spa-plugin 预渲染插件的使用说明
阅读量:6761 次
发布时间:2019-06-26

本文共 1803 字,大约阅读时间需要 6 分钟。

众所周知单页面应用不利于SEO,为了解决这个问题网上所给出的2个解决方案

**1、SSH服务器端渲染
2、预渲染**
由于页面较少,且预渲染相对于SSH比较简单,于是选择预渲染页面,预渲染可以极大的提高网页访问速度。而且配合一些meat插件,基本可以满足SEO需求
下面就来简单介绍一下
在webpack.

var PrerenderSpaPlugin = require('prerender-spa-plugin')var webpackConfig = merge(baseWebpackConfig, {  plugins: [    //这段代码意思是拷贝static文件至根目录使得渲染的文件可以找到js、css    new CopyWebpackPlugin([{      from: 'static'    }]),            new PrerenderSpaPlugin(    //将渲染的文件放到dist目录下      path.join(__dirname, '../dist'),         //需要预渲染的路由信息      [ '/','/introduct','/culture','/Chairman','/president','/fund','/news','/honor' ],      {      //在一定时间后再捕获页面信息,使得页面数据信息加载完成        captureAfterTime: 50000,        //忽略打包错误        ignoreJSErrors: true,        phantomOptions: '--web-security=false',        maxAttempts: 10,      }    ),

如果是一般不用跨域的网站到此已经完成,然而api需要跨域的时候请求的数据全部都请求不到,所有的页面都只有一个骨架,顺便贴一下跨域

proxyTable: {      // proxy all requests starting with /api to jsonplaceholder      '/api': {        target: 'http://192.26.26.xx/api',        changeOrigin: true,        pathRewrite: {          '^/api': ''        }      }      }

在打包之后跨域是不生效的,需要在nginx服务器做一个反向代理,

预渲染的时候请求全都是localhost:8080所以没有数据信息
在网上查了半天也没发现怎么解决
查看prerender-spa-plugin的代码发现他是用的Hapi,找到插件下面的compile-to-html.js 文件发现下面这段代码

Server.start(function (error) {          // If port is already bound, try again with another port          if (error) return serveAndPrerenderRoute()          var maxAttempts = options.maxAttempts || 5          var attemptsSoFar = 0          var phantomArguments = [            Path.join(__dirname, 'phantom-page-render.js'),            'http://localhost:' + port + route,            JSON.stringify(options)          ]

于是我突发奇想 将打包好的没有数据的文件放到nginx服务器上,由于服务器是做过反向代理的所以可以请求到数据,于是我将 ':' + port + route,直接改成了我服务器上的地址 '' + route,,于是预渲染成功了有了数据信息,我这也算是另辟蹊径了,不知道有没有大神知道到底该怎么配置,我查边文档也没有找到。

转载地址:http://ombeo.baihongyu.com/

你可能感兴趣的文章
单片机中PWM的原理与控制程序
查看>>
RStudio中,出现中文乱码问题的解决方案
查看>>
【SQL 触发器】
查看>>
Kafka server部署配置优化
查看>>
(转) Artificial intelligence, revealed
查看>>
【转】VS项目属性的一些配置项的总结
查看>>
Project、Target、Workspace and Scheme
查看>>
topas top vmstat
查看>>
Linux基本权限学习
查看>>
掌握jQuery插件开发
查看>>
git基本用法
查看>>
Spring Session - 使用Redis存储HttpSession例子
查看>>
如何利用框选工具获取多边形范围?
查看>>
Java读取Excel数据
查看>>
input输入框回车事件响应
查看>>
[转]win7 如何升级PowerShell
查看>>
mongodb基本操作
查看>>
工具使用——印象(汇总)
查看>>
020 RDD的理解
查看>>
Flask 2 程序的基本结构1
查看>>