2017-01-08 30 views
2

我有一个jekyll based bloggithub pages与Disqus评论服务Disqus。或者更确切地说:他们曾经通过Disqus获得服务。我发现,Disqus的东西无法加载。CSP错误与Github页上的Disqus

在Chrome中我看到下面的错误在控制台:

拒绝加载脚本“的数据:应用程序/ JavaScript的; BASE64,KGZ1bmN0aW9uKCkgewoJdmFyIG5vb3BmbiA9IGZ1 ... gpKTsKCQkJfQoJCX0KCX0pKCk7Cgl3aW5kb3cuX2dhcSA9IGdhcS5xZiA9IGdhcTsKfSkoKTs =”,因为它违反了以下内容安全策略指令: “脚本SRC https://开头.twitter.com:https://a.disquscdn.com.services.disqus.com:https://c.disquscdn.com HTTP:// .twitter.com:https://apis.google.com/js/api.jshttp://a.disquscdn.comhttps://cdn.syndication.twimg.com/tweets.json HTTP s:// .services.disqus.com:https://connect.facebook.net/en_US/sdk.jshttps://referrer.disqus.com/juggler/'unsafe-eval'a.disquscdn.com http://disqus.comhttps://ssl.google-analytics.comhttps://disqus.com“。

我首先想到的Disqus是做一些愚蠢的事,但我发现this article这让我觉得我做错了什么,像使用jQuery加载Disqus。但我不明白是什么导致了这个问题。

我的另一个想法是,也许我的cookie横幅或私有獾是造成问题,但隐私獾配置为只阻止网站上的谷歌分析,甚至允许这样做,并没有使其工作。

此外,当在本地运行jekyll serve时,一切都按预期工作。

我排除的cookie的旗帜作为问题的来源,即暂时删除它,没有任何作用,对Disqus

我不认为this SO question是同样的问题,因为我没有一个iframe 。

我的实际问题,由三个部分组成:

  1. 如何调试这样的问题?
  2. 问题的根本原因是什么?
  3. 我该如何解决?
+1

我当时有这个问题。解决方案是关闭我的广告拦截器。 –

回答

2

在你disqus_config,您有:

this.page.url = 'http://blog.schauderhaft.dehttp://blog.schauderhaft.de/'; 
因为硬编码的基础URL相结合的

| prepend: site.urlin _includes/disqus.html

this.page.url = 'http://blog.schauderhaft.de{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}'; 

这应该很好地工作:

this.page.url = '{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}'; 

如果禁用所有扩展,则CSP错误应该消失。这可能是Disqus尝试通过阻止他们不能在启用CSP的情况下正确测试的方法;很难说没有源头。

+0

谢谢瑞安,我自己找到了。我讨厌它有两个问题在同一时间导致实际问题,但只有另一个触发日志中的错误信息 –

+0

你可以请示例什么'this.page.url'应该是作为一个串?我没有使用三文鱼。 –

+0

@SephReed:https://help.disqus.com/customer/portal/articles/472098-javascript-configuration-variables#this.page.url – Ryan