我在jekyll based blog上有一个github pages,评论由Disqus提供。或者更确切地说:他们过去常常被Disqus服务。我发现,Disqus的东西无法加载。
在Chrome中,我在控制台中看到以下错误:
拒绝加载脚本'数据:application / javascript; base64,KGZ1bmN0aW9uKCkgewoJdmFyIG5vb3BmbiA9IGZ1 ... gpKTsKCQkJfQoJCX0KCX0pKCk7Cgl3aW5kb3cuX2dhcSA9IGdhcS5xZiA9IGdhcTsKfSkoKTs ='因为它违反了以下内容安全策略指令:" script-src https:// .twitter.com: https://a.disquscdn.com .services.disqus.com: https://c.disquscdn.com http:// .twitter.com: https://apis.google.com/js/api.js http://a.disquscdn.com https://cdn.syndication.twimg.com/tweets.json https:// .services.disqus。 com: https://connect.facebook.net/en_US/sdk.js https://referrer.disqus.com/juggler/' unsafe-eval' a.disquscdn.com http://disqus.com https://ssl.google-analytics.com https://disqus.com"。
我首先想到Disqus正在做一些愚蠢的事,但我发现this article让我觉得我做错了,比如用jquery来加载Disqus。但我不知道造成这个问题的原因。
我的另一个想法是,也许我的cookie横幅或私有獾会导致问题,但Privacy Badger被配置为仅阻止网站上的Google分析,甚至允许它,并不能使其工作。
在本地运行jekyll serve
时,一切都按预期工作。
我排除了cookie横幅作为问题的根源,暂时删除它,对Disqus没有任何影响
我不认为this SO question是同一个问题,因为我没有iframe。
我的实际问题包括三个部分:
答案 0 :(得分:2)
在disqus_config
,您有:
this.page.url = 'http://blog.schauderhaft.dehttp://blog.schauderhaft.de/';
由于硬编码的基本网址与| prepend: site.url
in _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的情况下正确测试;没有消息来源很难分辨。