rhodee
rhodee

Reputation: 1267

Disqus comments fails to load on localhost?

I would like to use the universal code and have ran into difficulties getting the most basic functionality done.

I would like to create a shortname for test and one for my deployment, which I did from the Disqus admin panel.

Here is the disqus code in my show action:

# 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>

In my model I define Post, I define my short name like so:

  DISQUS_SHORTNAME = if Rails.env.development? 
                        "dev-shortname".freeze
                     else
                        "shortname".freeze
                     end

I can confirm the loading spinner is functioning but that is it. Am I missing something obvious? When I try to include only_path: false as a second option in my url_for call, I get an exception stating I have supplied to many arguments to the method. Otherwise my disqus just hangs.

Upvotes: 30

Views: 17817

Answers (7)

Serhii Kozachenko
Serhii Kozachenko

Reputation: 1401

For anyone in 2020 who faced this issue - I found that setting the shortname to my organization name in Disquss did the trick. And URL can be set to anything.

disqus_developer = 1 doesn't do anything.

Upvotes: 1

olayemii
olayemii

Reputation: 600

This might be old now, but I fixed it by keeping the URL empty on both my script and my Disqus setting

Upvotes: 1

John Lehmann
John Lehmann

Reputation: 8225

The recommend solution seems to be to register multiple shortnames aka sites. This worked for me. E.g., balloons and balloons-dev.

Make sure to modify the Javascript they give you to replace the shortname in the line which is below the comment about "do not modify", if want to dynamically set which site you're using based on your environment (e.g., "balloons" if not settings.DEBUG else "balloons-dev").

https://help.disqus.com/customer/portal/articles/1053796-best-practices-for-staging-development-and-preview-sites

Upvotes: 2

rlueder
rlueder

Reputation: 359

None of the solutions above worked for me as of September 2013.

To get it to work I had to add localhost to the "Trusted Domains" list on this page:

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

and also use the "Universal Code" found below to embed it into my blog posts:

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

And it works! :)

Upvotes: 13

Ken Hirakawa
Ken Hirakawa

Reputation: 8251

Try setting disqus_url to match your registered site URL.

http://kenhirakawa.com/load-disqus-on-localhost/

Upvotes: 12

You knows who
You knows who

Reputation: 895

you should set this to make it work:

var disqus_developer = 1; // this would set it to developer mode

Reference: http://ray247.wordpress.com/2009/09/02/how-to-develop-with-disqus-on-localhost/

Upvotes: 18

airportyh
airportyh

Reputation: 22668

Disqus doesn't work on localhost as far as I know. It has always only worked on the production site for me. I believe it checks the hostname against the registered hostname.

Upvotes: -3

Related Questions