2017-01-08 9 views
2

У меня есть jekyll based blog на github pages с комментариями, поданными Disqus. Или, если быть более точным: они служили Дискусу. Я обнаружил, что материал Disqus не загружается.Ошибка CSP с Disqus на страницах github

В 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 или личный чехол вызывают проблемы, но Privacy Badger настроен только для блокирования аналитики Google на сайте и даже разрешения этого, не заставляет его работать.

Также все работает по назначению при запуске jekyll serve локально.

И я исключила печенье баннер в качестве источника проблемы, путем удаления его temporarly, без какого-либо влияния на 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

 Смежные вопросы

  • Нет связанных вопросов^_^