2017-01-08 63 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