Где установить переменную окружения `DISCOURSE_ENABLE_CORS`?

Я считаю, что вам нужно установить
DISCOURSE_ENABLE_CORS: true
в вашем файле app.yml (где-то в секции env)

Разве не следует устанавливать переменную DISCOURSE_ENABLE_CORS для Discourse?

Я не совсем понимаю, что вы имеете в виду, но попробуйте выполнить то, что было рекомендовано. Я уверен, что можно просто сделать ./launcher destroy app; ./launcher start app вместо полной пересборки.

Спасибо за ваш ответ. Извините, что в предыдущем сообщении я выразился недостаточно ясно.

Я использую размещенный экземпляр Discourse и собираюсь внедрить его на свой сайт. При попытке получить объект contentDoument для iframe встроенного Discourse я столкнулся с ограничением межсайтового доступа. На странице настроек администратора я заметил параметр «cors origins», как показано на изображении в теме. Затем я добавил URL своего тестового источника, но это не сработало. Также я обратил внимание на подсказку: «Переменная окружения DISCOURSE_ENABLE_CORS должна быть установлена в true для включения CORS». Однако я не могу найти, где установить DISCOURSE_ENABLE_CORS в настройках администратора.

Я хотел бы узнать, как установить DISCOURSE_ENABLE_CORS, или, если моя конфигурация межсайтового доступа не работает, связана ли она с этим параметром.

Встраивание (embedding) — это не моя сильная сторона, но, думаю, вы настраиваете это в /admin/customize/embedding, а не меняете переменную окружения?

Спасибо за ваш ответ. Я попробовал, но это не сработало.

Если вы хотите, чтобы мы помогли, вам нужно подробно объяснить, что именно вы пробовали.

Это то, что я настроил в /admin/customize/embedding, но это не помогает для кросс-доменных запросов.

Я не думаю, что это возможно.

Существует скрытая настройка сайта, позволяющая встраивать iframe, но, подозреваю, она недоступна на стандартных или бизнес-тарифах. Вы можете обратиться к своему контакту в поддержке для уточнения.

Внедрение Discourse через iframe официально не поддерживается.

iframe создается официальным JS-скриптом. Я использую код, предоставленный на странице /admin/customize/embedding, как показано ниже:


Мне нужно, чтобы встроенные элементы соответствовали цветовой схеме моего сайта, поэтому мне необходимо получить доступ к iframe, хотя сам iframe создан не мной.

@mikeguo, на какой платформе размещён сайт, в который вы пытаетесь внедрить темы Discourse?

Например, это сайт на WordPress или блог на Ghost?

Пожалуйста, предоставьте ссылку на публикацию на целевом сайте.

Всё, что я вижу, — это следующее (из скриншота кода в вашей теме выше):

https://e53c-185-143-220-5.eu.ngrok.io/

Например, я использовал переменную окружения ‘DISCOURSE_ENABLE_CORS’, как описано в этом сообщении, чтобы отображать контент из моего форума Discourse на странице моего блога Ghost…

Однако функция, которую, похоже, вы пытаетесь использовать из кода, опубликованного выше…

…свидетельствует о том, что вы пытаетесь внедрить темы из вашего форума Discourse в качестве публикаций на внешнем сайте, что является другим сценарием использования.

Пожалуйста, более подробно объясните, что именно вы пытаетесь сделать здесь…

Спасибо большое за подробное объяснение.
https://algo.monster — это мой сайт, на который я хочу внедрить Discourse. А именно — встроить Discourse на страницы статей для отображения комментариев, заменив используемый мной Cusdis. Например, статья https://algo.monster/problems/math-basics и комментарии:


Мой сайт https://algo.monster не использует платформу для блогов, ни WordPress, ни Ghost. Мой сайт реализован с помощью моего собственного кода и развернут на моем собственном облачном сервере.
Используя код, предоставленный на /admin/customize/embedding, встроенный Discourse отображается корректно.
Проблема, которую я надеюсь решить, настроив DISCOURSE_ENABLE_CORS, заключается в следующем:

Этот URL-адрес используется мной для тестирования и не должен вызывать проблем с перекрестным доменом.

Спасибо @mikeguo — что вы вставили в свой фрагмент скрипта для discourseEmbedUrl вместо ‘REPLACE_ME’?

Чтобы ссылаться на существующие темы, а не создавать их автоматически, я заменил параметр discourseEmbedUrl на topicId, как показано ниже:

Спасибо ещё раз @mikeguo — к сожалению, теперь это уже вне моих возможностей помочь… Надеюсь, кто-то другой здесь сможет дать совет…

Спасибо за вашу помощь в любом случае :sparkling_heart: