起因
太久没维护博客了,最近发现Valine评论都展示不出来,看了下console发现是leancloud访问出了问题
查了下前因后果,大概就是LeanCloud对部分域名不再进行维护了,如果继续使用老的域名去拉取评论数据必然失败。
这里和大家同步下我的环境
调整方案如下
获取新域名
替换https://你的appid前8位.api.lncldglobal.com
获得新域名
修改valine代码
- 主题配置文件中的valine配置增加配置: severURLs(私有leancloud域名)
- 修改主题中valine对应的js源码:加载私有域名
- 更新av-min.js文件:确保私有域名可生效
示例
不同的主题可能涉及到的代码位置不同,但是调整思路类似,这里我贴下我的主题配置和涉及到调整的代码片段
主题配置文件config.yml
1 2 3 4 5 6 7 8 9 10 11 12 13
| valine: enable: true appId: 12345678 appKey: 1234123123123 notify: false verify: false pageSize: 10 avatar: monsterid lang: zh-cn placeholder: 📢📢📢留下邮箱可以收到回复提醒哦~ guest_info: nick,mail,link serverURLs: https://12345678.api.lncldglobal.com
|
valine对应的js源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <script src="//code.bdstatic.com/npm/leancloud-storage@4.12.0/dist/av-min.js"></script> <script src="//unpkg.com/valine/dist/Valine.min.js"></script> <script> var GUEST_INFO = ['nick','mail','link']; var guest_info = '<%= theme.valine.guest_info %>'.split(',').filter(function(item){ return GUEST_INFO.indexOf(item) > -1 }); var notify = '<%= theme.valine.notify %>' == true; var verify = '<%= theme.valine.verify %>' == true; var valine = new Valine(); valine.init({ el: '#vcomment', notify: notify, verify: verify, appId: "<%= theme.valine.appId %>", appKey: "<%= theme.valine.appKey %>", placeholder: "<%= theme.valine.placeholder %>", pageSize:'<%= theme.valine.pageSize %>', avatar:'<%= theme.valine.avatar %>', lang:'<%= theme.valine.lang %>', serverURLs:'<%= theme.valine.serverURLs %>' }) </script>
|
测试
本地构建启动之后可能会因为不在leancloud白名单内,返回403,不过不要紧说明已经生效
直接hexo d发布就能生效了