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 的所有页面上显示相同的评论的主要内容,如果未能解决你的问题,请参考以下文章