修复hexo博客中leancloud无法显示阅读次数的问题

本文档详细记录了如何解决Hexo博客中Leancloud阅读次数显示不正常的问题。通过分析发现是由于jsdelivr的DNS污染导致的资源加载失败。解决方案包括将jsdelivr替换为fastly镜像,并对相关js文件进行本地化和修改,以及在服务器上配置Nginx进行URL映射,确保资源加载成功,最终成功修复阅读次数显示。

修复hexo博客中leancloud无法显示阅读次数的问题

本人近期打算修复一下一直无法使用的博客阅读次数。
Hexo-shoka主题所采用的是valine结合leancloud来记录每一篇博客的阅读次数,可不知道何时开始底下的阅读次数就始终为空。
01
通过查看F12可以发现,md5.min.js,av-min.js均获取失败,而发起程序则是MiniValine.min.js。其原因在于近期jsdelivr的DNS发生了污染所致。
02
可在这之前本人已经将博客内的jsdelivr均更换为了fastly镜像,可仍然发生了该异常,通过查看MiniValine.min.js可以发现在js内部引用了许多cdn.jsdelivr有关的资源。
03
考虑将js文件下载到服务器,并对js进行魔改操作。

将themes\shoka\scripts\helpers中的

let result = vendorJs ? `<script src="//fastly.jsdelivr.net/combine/${vendorJs}"></script>` : '';
return vendorJs ? htmlTag('script', { src: `//fastly.jsdelivr.net/combine/${vendorJs}` }, '') : '';

修改为

let result = vendorJs ? `<script src="//d-sketon.top/combine/${vendorJs}"></script>` : '';
return vendorJs ? htmlTag('script', { src: `//d-sketon.top/combine/${vendorJs}` }, '') : '';

themes\shoka\source\js_app中的

if(str.indexOf('npm')>-1||str.indexOf('gh')>-1||str.indexOf('combine')>-1)
     return "//fastly.jsdelivr.net/" + str

修改为

if(str.indexOf('npm')>-1||str.indexOf('gh')>-1||str.indexOf('combine')>-1)
     return "//d-sketon.top/" + str

并在服务器上创建对应的js文件使用nginx进行URL映射,注意增加缓冲防止js被截断

location  ^~/combine/npm/pace-js@1.0.2/pace.min.js,npm/pjax@0.2.8/pjax.min.js,npm/whatwg-fetch@3.4.0/dist/fetch.umd.min.js,npm/animejs@3.2.0/lib/anime.min.js,npm/algoliasearch@4/dist/algoliasearch-lite.umd.js,npm/instantsearch.js@4/dist/instantsearch.production.min.js,npm/lozad@1/dist/lozad.min.js,npm/quicklink@2/dist {
          alias /var/www/cdn;
          proxy_buffer_size 128k;
          proxy_buffers   32 128k;
          proxy_busy_buffers_size 128k;
}
location ^~/gh/amehime/MiniValine@4.2.2-beta10/dist {
          alias /var/www/cdn;
          proxy_buffer_size 128k;
          proxy_buffers   32 128k;
          proxy_busy_buffers_size 128k;
}
location  ^~/combine/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css,npm/justifiedGallery@3.8.1/dist/css {
          alias /var/www/cdn;
          proxy_buffer_size 128k;
          proxy_buffers   32 128k;
          proxy_busy_buffers_size 128k;
}
location  ^~/combine/npm/jquery@3.5.1/dist/jquery.min.js,npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js,npm/justifiedGallery@3.8.1/dist/js {
          alias /var/www/cdn;
          proxy_buffer_size 128k;
          proxy_buffers   32 128k;
          proxy_busy_buffers_size 128k;
}

07
将MiniValine.min.js中所有的cdn.jsdelivr改为fastly.jsdelivr
经过测试后发现md5.min.js,av-min.js均获取成功,且可以获得阅读次数,修复完成。
06

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值