Disqus 在我的 Jekyll 网站上无法在任何浏览器中加载

3

我正在使用Jekyll在GitHub Pages上工作。Disqus代码位于_includes/disqus.html,并具有以下代码:

<div class="comment">
<button class="show-comments"><i class="fa fa-comments" aria-hidden="true"> Load/Add comments</i></button>
<div id="disqus_thread"></div>
</div>
<script src={{ "/js/jquery.min.js" | prepend: site.baseurl }}></script>
<script>
$(document).ready(function() {
    $('.show-comments').on('click', function(){
          var disqus_shortname = '{{site.disqus-shortname}}'; 
          $.ajax({
                  type: "GET",
                  url: "http://" + disqus_shortname + ".disqus.com/embed.js",
                  dataType: "script",
                  cache: true
          });
          $(this).fadeOut();
    });
});
</script>

在layouts文件夹中,我有一个名为blue.html的文件,其中包含以下Disqus代码:
   {% include disqus.html %}
        {% else %}
        {% endif %}

config.yml 文件中,我记录了我的 Disqus 短名称:

#comments disqus-shortname: eudemonis

在点击“加载评论”部分时,Disqus的任何内容都没有加载,请看测试帖子。 无论是否将YAML前置设置为comments: true,在Safari和Chrome中都不能正常工作。我真的很失落。
我已经尝试了一个完全按照Disqus文档使用通用代码的新文件,但它并不起作用。手动使用我的Disqus简称更改Liquid标记也不起作用。
1个回答

3

我认为问题出在你的网站使用HTTPS协议进行托管,但在_includes/disqus.html文件中却使用HTTP协议链接到Disqus:

$.ajax({
  type: "GET",
  url: "http://" + disqus_shortname + ".disqus.com/embed.js",
  dataType: "script",
  cache: true
}); 

Chrome控制台报错(按F12查看):

混合内容:页面'https://eudemonis.github.io/blog/test//'通过HTTPS加载,但请求了一个不安全的脚本'http://eudemonis.disqus.com/embed.js'。该请求已被阻止;内容必须通过HTTPS提供。

要解决此问题,请将协议更改为HTTPS:

url: "https://" + disqus_shortname + ".disqus.com/embed.js",

或者省略协议,让浏览器决定:

url: "//" + disqus_shortname + ".disqus.com/embed.js",

1
我知道我应该避免使用感谢评论,但是非常感谢!这个程序立即且顺利地运行了。 - Starassault

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