Disqus 在设置了唯一 page.url 和 page.id 的所有页面上显示相同的评论

Posted

技术标签:

【中文标题】Disqus 在设置了唯一 page.url 和 page.id 的所有页面上显示相同的评论【英文标题】:Disqus showing same comments on all pages with unique page.url and page.id set 【发布时间】:2019-07-05 01:25:08 【问题描述】:

我正在向我的 django 应用程序添加 disqus,但无法让它在每个页面上加载新的 cmets 线程。

我已经尝试了所有方法并遵循了文档,其中说明在使用前在 disqus javascript 模板中设置变量。

这是我需要 disqus cmets 的“post_detail.html”:

% extends 'base.html' %

% block content %
  <div class="post-entry">
    <h2> post.title  </h2>
    <p> post.body|safe </p>
  </div>
  <div id="disqus_thread"></div>
  <script>

  /**
  *  RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
  *  LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/

  var disqus_config = function () 
  this.page.url = ' request.build_absolute_uri ';  // Replace PAGE_URL with your page's canonical URL variable
  this.page.identifier = ' request.get_full_path '; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
  this.page.title = ' post.title '
  ;

  (function()  // DON'T EDIT BELOW THIS LINE
  var d = document, s = d.createElement('script');
  s.src = 'https://bytewise-com.disqus.com/embed.js';
  s.setAttribute('data-timestamp', +new Date());
  (d.head || d.body).appendChild(s);
  )();
  </script>
  <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
% endblock content %

根据https://help.disqus.com/developer/javascript-configuration-variables,此函数中的变量设置正确

...
this.page.url = ' request.build_absolute_uri ';
this.page.identifier = ' request.get_full_path ';
...

这是我的浏览器在加载页面时得到的响应,所以我知道变量加载正确。

 /**
  *  RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
  *  LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/

  var disqus_config = function () 
  this.page.url = 'http://127.0.0.1:8000/post/1/';  // Replace PAGE_URL with your page's canonical URL variable
  this.page.identifier = '/post/1/'; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
  this.page.title = 'Testing the post function'
  ;

  (function()  // DON'T EDIT BELOW THIS LINE
  var d = document, s = d.createElement('script');
  s.src = 'https://bytewise-com.disqus.com/embed.js';
  s.setAttribute('data-timestamp', +new Date());
  (d.head || d.body).appendChild(s);
  )();

我也尝试过手动更改变量,以确保它们完全独一无二。还尝试使用 django-disqus 包及其模板标签,但没有结果。

为什么相同的 cmets 仍然出现在我的其他帖子中?

是否与引用“post_detail.html”模板的每个帖子有关?

已经为此工作了几个小时,感谢任何帮助。

【问题讨论】:

【参考方案1】:

我查看了 disqus 管理页面,它显示 http://127.0.0.1:8000/post 作为线程 url,编辑它给了我一个关于无效 url 格式的错误。 我觉得很奇怪,所以我删除了网站和 cmets。

将变量更改为:

this.page.url = ' request.build_absolute_uri .html'

无论出于何种原因,disqus 似乎更同意这一点,不确定这是否是有意的,但它现在似乎工作正常。

【讨论】:

以上是关于Disqus 在设置了唯一 page.url 和 page.id 的所有页面上显示相同的评论的主要内容,如果未能解决你的问题,请参考以下文章

Disqus科学使用方式

drupal 视图中的 Disqus 评论

如何在移动方向更改时重置 Disqus 宽度

如何更改 disqus 评论的字体

如何从柜台移除 Disqus 反应?

html 如果您对页面权重和访问者进行了粗略的评论,请仅根据需要加载Disqus评论。即使没有评论,即空评论