0%

HEXO博客使用LeanCloud报错“Counter not initialized! See more at console err msg.”

HEXO博客使用LeanCloud报错“Counter not initialized! See more at console err msg.”

CSDN 的 Markdown 编辑器好像不像Typora那样能够正确渲染 .md 文档中夹杂的 HTML 标签,所以导致之前以 HTML 语法插入的图片在 CSDN 上无法正确显示

具体问题

在根据文档配置好LeanCloud并完成部署之后,刷新博客网页,在主页看到每篇文章的阅读次数都显示为0,而打开每篇文章的相应页面更是发现错误信息:Counter not initialized! More info at console err msg.具体情况如图所示:

有报错信息的情况

此外在之前还遇到“阅读次数”不显示或者显示为NaN/NaN的情况,检查发现是在 leancloud 中配置的时候习惯性将自己的自定义域名协议写成了HTTPS,但实际上是用的HTTP协议。因此修改之后就出现了上面的情况。

如图所示:
协议错误的显示情况

解决方案

在搜索过程中发现有人也遇到过这个问题,于是按照《hexo使用笔记》中的描述,安装了插件hexo-leancloud-counter-security(命令行执行npm install hexo-leancloud-counter-security

,并将主题配置文件_config.yml中的对应项security置为false

具体位置如下(第 8 行):

1
2
3
4
5
6
7
8
9
leancloud_visitors:
enable: true
app_id: # <app_id>
app_key: # <app_key>
# Dependencies: https://github.com/theme-next/hexo-leancloud-counter-security
# If you don't care about security in leancloud counter and just want to use it directly
# (without hexo-leancloud-counter-security plugin), set `security` to `false`.
security: false
betterPerformance: false

这样配置之后,就可以看到页面中的数据能够正常显示了。如下图:

正确配置后的显示效果

参考文档

hexo使用笔记

注:原文档中建议的是两种方法:1)使用hexo-leancloud-counter-security插件;2)设置leancloud_visitors.security = false均可。

但考虑到主题配置文件中关于安全性的提醒,我是按步骤分别完成了这两步。并且只安装hexo-leancloud-counter-security插件依然不能解决报错问题,可能真正生效的是“将security置为false”这一步。

但出于安全考虑,建议大家也同时安装hexo-leancloud-counter-security插件。