jekyll - 我的 Jekyll 网站上的任何浏览器都无法加载 Disqus
问题描述
我正在使用 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>
在布局文件夹中,我有一个blue.html
包含以下 Disqus 代码的文件:
{% include disqus.html %}
{% else %}
{% endif %}
在config.yml
我注意到我的 Disqus 短名称中:
#comments disqus-shortname: eudemonis
但是当单击加载评论部分时,没有加载任何 Disqus,请参阅测试帖子。
设置或不设置 YAML 前端,因为comments: true
它在 Safari 和 Chrome 中都不起作用。我真的很茫然。
我已经用通用代码在 Disqus 文档之后尝试了一个完整的新文件,但它不起作用。使用我的 Disqus 短名称手动更改 Liquid 标签也不起作用。
解决方案
我认为问题在于您的网站是使用 HTTPS 托管的,但您正在使用 HTTP 协议链接到 Disqus _includes/disqus.html
:
$.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",
推荐阅读
- sapui5 - 将对话框定位在 Fiori 的屏幕中央
- javascript - 为什么我的 PayPal 智能按钮在单击时没有加载支付窗口?(JavaScript 错误)
- python - 如何从python将绑定变量传递给雪花中的copy into语句
- javascript - 类型函数中的嵌套泛型
- python-3.x - 多个输入和行循环写入文件 - python
- php - 带有数据范围的 Mysqli 通配符插入
- python - 字符串转换,然后是 int 和 int 转换的字符串之间的区别
- firebase - Firestore 食品订购应用程序数据库设计问题
- r - data.frame 选择有条件的列
- react-native-android - 如何在反应原生导航 v5 中重置堆栈