disqus不会在localhost中加载,已经处于开发模式

时间:2014-09-12 14:24:48

标签: disqus

无论我做什么,我都不能让disqus在开发模式下工作。

disqus帐户是新的,其中没有内容。

在我的网站标题中我有

<script type="text/javascript">
var disqus_developer = 1;
var disqus_url = 'example.com';
</script>

不是真正的域名,但由于我在localhost中使用它,它应该可以工作,对吗?

然后我的内容结尾了:

 <div id="disqus_thread"></div> 
<script type="text/javascript">
/* <![CDATA[ */
var disqus_shortname = 'mywebsiteshortname'; // the real thing, this is just for show

/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
    var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
    dsq.src = '//' + 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="//disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="//disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>

关于铁饼我有: disqus settings

与我的设置相同的网址和相同的短名称。

但是尽管这种争论不会加载:

  

我们无法加载Disqus。如果您是主持人,请参阅我们的故障排除指南。

故障排除指南根本没有帮助。

这是预期的行为,还是有办法在localhost和开发人员模式下加载和使用注释,以便正确测试和配置它?

3 个答案:

答案 0 :(得分:5)

看起来问题出在您的disqus_url上,这需要是一个绝对的网址。使用var disqus_url = 'http://example.com'应该有效

附加说明:您不需要使用&#39; disqus_developer&#39;它将在没有任何额外配置的情况下在本地加载。如果您要在网站设置中设置受信任的域,请务必将localhost添加到列表中。

答案 1 :(得分:2)

更新

Disqus已进行了一些更改,但我无法将localhost添加为受信任的域。据我所知,他们也不再支持disqus_developer = 1

简单解决方案:

在开发过程中从Disqus中删除所有受信任的域。据我所知,删除所有受信任的域与允许任何域访问您的Disqus相同。

高级解决方案:

简单的解决方案提出了一些安全问题,该解决方案可以解决这个问题。此示例使用Sinatra,但任何后端语言或库都应该有效。使用相同的Disqus进行开发和生产并不是一个好主意。在应用程序控制器中,添加此块。

class ApplicationController < Sinatra::Base
  before do
    @production = Sinatra::Application.production?
    @disqus_url = @production ? "production.disqus.com" : "development.disqus.com"  
  end
end

在Disqus中创建两个网站,然后更改production.disqus.comdevelopment.disqus.com以匹配您的Disqus网址。

在您的视图somefile.erb中,将以下代码添加到您想要评论的位置。

<div id="disqus_thread"></div>
<script>

  var disqus_config = function () {
    this.page.url = "<%= request.url  %>";
  };

  (function() { // DON'T EDIT BELOW THIS LINE
    var d = document, s = d.createElement('script');
    s.src = '//<%= @disqus_url %>/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>
<script id="dsq-count-scr" src="//<%= @disqus_url %>/count.js" async></script>

对于安全性非常重要:在admin/settings/advanced/下的您的Disqus中,将您的网站网址添加到您的产品Disqus的受信任域中,这将限制来自其他域的访问。不要将任何受信任的域添加到您的开发Disqus中,以便它可以在localhost上运行。这也将使您的所有评论与开发和生产网站分开。

答案 2 :(得分:0)

以下解决方案可行

  1. 在&#34;可信域名&#34;中注册您的网站网址。位于Disqus下的设置&gt;高级标签下。 示例:appleandmango.com

  2. 在Windows中转到&#34; C:\ Windows \ System32&#34;并搜索&#34; hosts&#34;打开文件并添加IPv4地址(转到cmd并点击&#39; ipconfig&#39;获取IPv4)然后添加一个空格和注册的URL 示例:192.168.x.x appleandmango.com

  3. 现在不使用 localhost:portnumber 访问您的网站,而是使用 appleandmango.com:portnumber

  4. 访问它
  5. Disqus现在会加载所有评论