最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - "We were unable to load Disqus." with jekyll's default minima theme - Stack Overflow

programmeradmin1浏览0评论

When setting up my personal blog with jekyll, I found that I cannot get the comments section shown. It kept telling me:

We were unable to load Disqus. If you are a moderator please see our troubleshooting guide.

Relevant code: (For the complete code, please visit my repo: .github.io)

_config.yml

disqus:
  shortname: sled-dog

_layouts/post.html

{% if site.disqus.shortname %}
  {% include disqus_comments.html %}
{% endif %}

disqus_comments.html

{% if pagements != false and jekyll.environment == "production" %}

  <div id="disqus_thread"></div>
  <script>
    var disqus_config = function () {
      this.page.url = '{{ page.url | absolute_url }}';
      this.page.identifier = '{{ page.url | absolute_url }}';
    };
    (function() {
      var d = document, s = d.createElement('script');
      s.src = 'https://{{ site.disqus.shortname }}.disqus/embed.js';
      s.setAttribute('data-timestamp', +new Date());
      (d.head || d.body).appendChild(s);
    })();
  </script>
  <noscript>Please enable JavaScript to view the <a href="/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
{% endif %}

I've read through the troubleshooting guide several times and checked every possible situation, but the comments are still not appearing.

A few things to note:

  1. I'm using minima, jekyll's default theme, and following its document.
  2. I've registered a Disqus account and verified email address.
  3. My website shortname is sled-dog.
  4. github.io has been added to "Trusted Domains".

When setting up my personal blog with jekyll, I found that I cannot get the comments section shown. It kept telling me:

We were unable to load Disqus. If you are a moderator please see our troubleshooting guide.

Relevant code: (For the complete code, please visit my repo: https://github.com/sunqingyao/sunqingyao.github.io)

_config.yml

disqus:
  shortname: sled-dog

_layouts/post.html

{% if site.disqus.shortname %}
  {% include disqus_comments.html %}
{% endif %}

disqus_comments.html

{% if page.comments != false and jekyll.environment == "production" %}

  <div id="disqus_thread"></div>
  <script>
    var disqus_config = function () {
      this.page.url = '{{ page.url | absolute_url }}';
      this.page.identifier = '{{ page.url | absolute_url }}';
    };
    (function() {
      var d = document, s = d.createElement('script');
      s.src = 'https://{{ site.disqus.shortname }}.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" rel="nofollow">comments powered by Disqus.</a></noscript>
{% endif %}

I've read through the troubleshooting guide several times and checked every possible situation, but the comments are still not appearing.

A few things to note:

  1. I'm using minima, jekyll's default theme, and following its document.
  2. I've registered a Disqus account and verified email address.
  3. My website shortname is sled-dog.
  4. github.io has been added to "Trusted Domains".
Share Improve this question edited Jan 12, 2017 at 13:15 nalzok asked Jan 12, 2017 at 12:48 nalzoknalzok 16.1k23 gold badges84 silver badges156 bronze badges
Add a comment  | 

4 Answers 4

Reset to default 14

I'm surprised that the best answer is to disable discus.config.

If you have issues to enable disqus on your website with default jekyll theme, please check parameters.

_config.yml should include:

disqus: shortname: test-shortname

url: http://yourwebsite.com

JEKYLL_ENV should be set to "production"

export JEKYLL_ENV=production

That's all you need. Good luck.

There is an error in the this.page.identifier variable.

It should contain the page's unique identifier, but it is currently setting the page's url: this.page.identifier = '{{ page.url | absolute_url }}';

You should change it to:

this.page.identifier = {{ site.disqus.shortname }}';

再见

  • Update

Surround var disqus_config with comment tags: /* var disqus_config = ...*/.

Looking at original post by @nazlok, i had a similar issue after googling around, I found out the disqus short_name is not the same as the disqus account name. In fact it is site-specific.

From what I see in your _config.yml , your short_name: sled-dog could be your 'disqus account name'.

Confirm that you have the correct short_name for your site. See what-is-a-shortname on how to access the short_name.

In my case, I was using a relative URL for this.page.url but it should be an absolute URL,

{{ page.url | absolute_url }}
发布评论

评论列表(0)

  1. 暂无评论