Disqus评论在本地主机上无法加载?

30

我想使用通用代码,但在完成最基本的功能时遇到了困难。

我想为测试创建一个短名称和为我的部署创建一个短名称,我已经在Disqus管理面板中完成了这个操作。

这是在我的show操作中使用的Disqus代码:

# inside show.html.erb
<%= render raw 'comments' %>

# partial "comments"

  <div id="disqus_thread"></div>
    <script type="text/javascript">
      var disqus_shortname = '<%= Post::DISQUS_SHORTNAME %>';
      var disqus_identifier = '<%= @post.id %>';
      var disqus_url = '<%= url_for([:blog, @topic, @post])%>';
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
        })();
    </script>
    <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
    <a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>
在我的模型中,我定义了一个名为Post的对象,我像这样定义了它的简称:
  DISQUS_SHORTNAME = if Rails.env.development? 
                        "dev-shortname".freeze
                     else
                        "shortname".freeze
                     end

我可以确认加载旋转器正在运作,但只是这样。我是否漏掉了一些显而易见的东西?当我尝试在我的url_for调用中加入only_path: false作为第二个选项时,我会收到一个异常,指出我已经向该方法提供了过多的参数。否则我的disqus就会挂起。

7个回答

18

我注意到当设置 disqus_urldisqus_identifier 时,在开发模式下评论框会出现问题。但是我需要让它们在生产环境下工作?有什么想法吗? - rhodee
我不确定,但是当在本地运行时,Disqus服务器无法访问您的页面,那么很多事情可能会出错。 - You knows who
21
尽管如此,我刚刚从 Disqus 技术支持那里收到确认消息,即“disqus_developer”已被弃用。 - Jose Browne
好的,看起来设置 disqus_developer 变量已经不再有用了。 - devforfu

13

截至2013年9月,以上的解决方案都对我无效。

要使其工作,我必须将 localhost 添加到此页面上的“受信任域”列表中:

http://[disqus_shortname].disqus.com/admin/settings/advanced/

并且使用下面找到的“通用代码”将其嵌入我的博客文章中:

http://[disqus_shortname].disqus.com/admin/settings/universalcode/

这样就可以工作了!:)


19
它拒绝了 localhost:“该域名无效。域名应该像'example.com'这样格式化。” - Jiayi Hu
各位,试着使用指向 127.0.0.1 的其他域名,例如 vcap.me - 参见 https://superuser.com/questions/1280827/why-does-the-registered-domain-name-localtest-me-resolve-to-127-0-0-1 - Tomasz Mularczyk

12

这个在2020年本地服务器上加载的方法非常完美。请匹配Disqus上注册的URL,例如'http://kenhirakawa.com'(不带www),以及页面的URL + 路径(如果适用),例如'http://kenhirakawa.com/load-disqus-on-localhost'。 - Eduardo Matsuoka

2

1

这可能已经过时了,但我通过在我的脚本和Disqus设置中都保持URL为空来解决了它。


1

对于2020年遇到这个问题的任何人 - 我发现在Disquss中将shortname设置为我的组织名称就可以解决问题。 URL可以设置为任何内容。

disqus_developer = 1没有任何作用。


到了2020年,使用组织名称也没有帮助。你有完整的代码片段可以复制/粘贴尝试吗?谢谢。 - Jon
@Jon 你好,我的情况是我正在使用React插件disqus-react,配置非常简单:const disqusConfig = { url: location.href, identifier: pageContext.slug || post.id, title: post.frontmatter.title, } - Sergiy Kozachenko

-3

据我所知,Disqus在本地主机上不起作用。对我来说,它总是只在生产网站上运行。我相信它会检查主机名与注册的主机名是否匹配。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接