Привет,
Я хотел попробовать Discourse на локальной установке Ghost.
В общем, я настроил всё максимально просто: следовал «Руководству для начинающих по установке Discourse для разработки с использованием Docker» и настроил Ghost через его CLI.
Ghost работает на localhost:2368, Discourse — на localhost:9292.
Я добавил localhost:2368 в раздел Customize/Embedding в список разрешённых хостов (без дополнительных настроек, таких как имя класса, разрешённый список путей или публикация в категорию).
После добавления фрагмента кода (и, конечно, правильной замены всех заполнителей) у меня появляется встраиваемый блок Discourse с надписью «Загрузка обсуждения…», но через несколько секунд в консоли появляется ошибка:
Не удалось выполнить ‘postMessage’ на ‘DOMWindow’: предоставленный целевой источник (‘http://localhost:9292’) не совпадает с источником окна-получателя (‘http://localhost:2368’).
Вы получаете эту ошибку, если iframe не загрузился.
Когда вы добавляете localhost:2368 в список разрешённых хостов, попробуйте варианты с косой чертой в конце и без неё, а также с использованием подстановочных знаков.
Суть в том, что страница может загрузиться, но ни один из элементов контента, ссылающихся на внешние ресурсы, не загрузится, что и приводит к сбою.
Тем не менее, я сам очень заинтересован в скором тестировании Ghost. Поэтому буду следить за этой темой и надеюсь, что это единственная проблема, с которой вы столкнётесь.
Продакшн-инстанс? Я следовал руководству по установке Discourse локально для разработки — разве это не правильная установка для локального использования? Установка работает безупречно, проблемы возникают только с внедрением.
Я попробовал добавить два прокси-сервера nginx: один для Ghost, другой для Discourse, работающие на ghost.localhost и discourse.localhost. После того как я изменил все URL-адреса на адреса прокси, возникла следующая ошибка:
Не удалось выполнить ‘postMessage’ в ‘Window’: недопустимый целевой источник ‘’ при вызове ‘postMessage’.
При использовании http://localhost:9292/ вместо http://discourse.localhost/ для параметра discourseUrl ошибка исчезает, но комментарии застревают в бесконечном цикле («Загрузка обсуждений» длится вечно, и каждые несколько секунд выполняются запросы).