鱼塘

好多好多好多鱼

0%

Hexo-theme-nexT 来必力评论刷新后消失不见的BUG解决

换电脑后新搭了一遍博客,测试来必力(livere)评论时发现可以进行评论,也收到了来自 livere 的邮件提醒,但是一旦刷新网页或者重新加载网页后,评论就会消失,显示不出来。为此,我查了许多资料,也看了 hexo-theme-next issue ,但是还没有解决问题。最终我向 livere 发送了反馈并得到了回复,成果解决了问题。

livere 回复

** This is a help E-Mail from LiveRe. **

你好:

我是来必力中国区负责人 Troy。很抱歉, 给您的使用带来不便。

通过您的描述,我们初步判断是 refer 值设置问题。

简单来说,就是 refer 是个参数,评论的添加与获取都是会带上这个参数的。而默认的 refer 值是根据您当前页面的 url 来获取的。

举例来说,不同的浏览器同一页面的 url 可能不同(带不带 www),电脑和移动端也有可能不同。

如图,谷歌和火狐浏览器访问同一页面,refer 值一个为 [www.m####3.com] 另一个为 [m####3.com]

注:原文是一个棋牌网站地址

image-20200418005200557

img

如果页面刷新后不显示评论,请确认您的refer值是否正确。

如果您的refer值的域名为 yoursite.com,那么这就导致了您的评论页面地址和网页实际地址不符合,因此文章的评论无法在页面显示。

解决方法也很简单,就是保证 refer 值统一即可,自行在插件代码中添加如下代码:

img

统一了 refer 值后,评论就会正常能显示了。

谢谢。

LiveRe 团队

解决

修改 nexT 主题中 layout/_third-party/comments/livere.swig 的 refer 值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vim layout/_third-party/comments/livere.swig

{%- if page.comments %}
<script>
NexT.utils.loadComments(document.querySelector('#lv-container'), () => {
window.livereOptions = {
// 修改这句,把 ‘yoursite.com’ 换成你的网址
refer: 'yoursite.com' + location.pathname
};
(function(d, s) {
var j, e = d.getElementsByTagName(s)[0];
if (typeof LivereTower === 'function') { return; }
j = d.createElement(s);
j.src = 'https://cdn-city.livere.com/js/embed.dist.js';
j.async = true;
e.parentNode.insertBefore(j, e);
})(document, 'script');
});
</script>
{%- endif %}