"We were unable to load Disqus." 使用 Jekyll 的默认最小主题

"We were unable to load Disqus." with jekyll's default minima theme

在使用 jekyll 设置 my personal blog 时,我发现无法显示评论部分。它一直告诉我:

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

相关代码:(完整代码请访问我的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 %}

troubleshooting guide看了好几遍,各种情况都排查过了,还是没有出现评论。

一些注意事项:

  1. 我正在使用 minima,jekyll 的默认主题,并遵循其 document.
  2. 我已经注册了一个 Disqus 帐户并验证了电子邮件地址。
  3. 我的网站短名称是 sled-dog
  4. github.io 已添加到 "Trusted Domains"。

this.page.identifier 变量有错误。

它应该包含页面的唯一标识符,但它当前正在设置页面的 url: this.page.identifier = '{{ page.url | absolute_url }}';

您应该将其更改为:

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

再见

  • 更新

用评论标签包围 var disqus_config/* var disqus_config = ...*/

我很惊讶最好的答案是禁用 discus.config。

如果您在使用默认 jekyll 主题的网站上启用 disqus 时遇到问题,请检查参数。

_config.yml 应包括:

disqus: shortname: test-shortname

url: http://yourwebsite.com

JEKYLL_ENV 应设置为 "production"

export JEKYLL_ENV=production

这就是您所需要的。祝你好运。

查看@nazlok 的原始 post,在谷歌搜索后我遇到了类似的问题,我发现 disqus short_name 与 disqus 帐户名称不同。实际上它是特定于站点的。

根据我在您的 _config.yml 中看到的情况,您的 short_name: sled-dog 可能是您的 'disqus account name'。

确认您的网站 short_name 正确。请参阅 what-is-a-shortname 了解如何访问 short_name。

在我的例子中,我为 this.page.url 使用了相对 URL 但它应该是绝对 URL,

{{ page.url | absolute_url }}