在这篇文章当中我们介绍过用Valine支持阅读量和评论的方法。
Valine通过LeanCloud提供的BAAS储存服务管理阅读量和评论,具体原理为:
- Valie会查找页面当中
class
值为leancloud_visitor
的元素,获取其id
为键值。 - 键值一般为文章发布日期和文章标题的组合。
- 发送请求到对应LeanCloud的app查询对应键值的阅读量。
- 将得到的值写入
class
值为leancloud-visitors-count
的元素里。
一般而言1、2、4步都不容易出错,并且很容易查看页面的源码来确认。第3步一般保证config
文件当中的appid
和appkey
不出错即可,但之前有几次因为LeadCloud自身协议的更改导致阅读量和评论功能无法使用。
LeanCloud之前要求所有的国内版业务域名备案不然服务无法使用,显然为了区区一个博客备案过于麻烦,我们直接使用国际版便可解决问题。
但是前段时间突然又发现博客的阅读量和评论功能出问题,具体表现为无法读取文章的阅读量和评论,也无法写评论。
查看控制台之后,发现通过通用域名us.leancloud.cn
发送的HTTP GET/POST
请求返回ERR_NAME_NOT_RESOLVED
的错误。一番搜索之后,发现LeanCloud国际版的通用域名已经停止使用,详情参见对应的github issue。我们需要使用服务的自定义域名,具体可在此处查找:
将其填入config
中的Valine配置:
1 | serverURLs: https://xxxxxxxx.api.lncldglobal.com # 把xxxxxxxx替换成你自己AppID的前8位字符 |
之后重新部署即可修复问题。