多说评论一篇文章被评论后,其他文章都添加了相同的评论
条评论文章目录
前端时间开博客开通了评论功能,使用的是
多说评论
duoshuo.com,今天在查找一些资料时,发现每一篇博客都有相同的评论,
自己当时没有测试该功能,居然有出现这种问题,看来还是凡事都得马虎不得,不能轻易想当然!
简单梳理了下解决的思路,希望对遇到相同问题的朋友有所帮助
思考过程
- 查找原因
每一篇文章都是相同的回复,测试了一下,回复一篇文章,其他文章都出现了自己的回复,认为是同一篇文章?
先登录多说的管理后台,看到评论的文章名称都是乱码。
再查看自己的配置,检查哪里是否配置错,
评论模块的配置:comment.ejs
这里是copy的多说提供的通用配置
<!-- 多说评论框 start -->
<div class="ds-thread" data-thread-key="请将此处替换成文章在你的站点中的ID" data-title="请替换成文章的标题" data-url="请替换成文章的网址"></div>
<!-- 多说评论框 end -->
<!-- 多说公共JS代码 start (一个网页只需插入一次) -->
<script type="text/javascript">
。。。
<!-- 多说公共JS代码 end -->
这里可以看出data-thread-key
是个关键字段,是用来区分文章的唯一ID,这里居然居然没改,问题肯定在这里,马上检查生成的html,果然<section id="comments" class="comment">
模块部分生成的代码data-thread-key=内容都是乱码了,打开几篇文章查看,果然都是相同的乱码。因为comment.ejs默认的编码不是UTF-8。所以嵌入到文章里只有这部分是乱码
- 问题解决
把comment.ejs中的中文注释全部删除,COPY 最新的 多说通用代码,修改data-thread-key, data-title,data-url的配置
<section id="comments" class="comment">
<div class="ds-thread" data-thread-key="<%- page.path %>" data-title="<%- page.title %>" data-url="<%- page.permalink %>"></div>
<script type="text/javascript">
var duoshuoQuery = {short_name:"zijide"};
(function() {
var ds = document.createElement('script');
ds.type = 'text/javascript';ds.async = true;
ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
ds.charset = 'UTF-8';
(document.getElementsByTagName('head')[0]
|| document.getElementsByTagName('body')[0]).appendChild(ds);
})();
</script>
</section>
再次发布,测试评论模块及回评,OK了。
凡事须再细心,认真