На моём контенте используются CSS-теги, и в настройках администратора встраивания я указал CSS-селекторы, но краулер их не обнаруживает. Я полагаю, что это связано с тем, что мой сайт создан на React, и CSS-селекторы недоступны. Как можно использовать эту функцию на сайте на React?
Возможно, это так, хотя я бы ожидал, что запрос, который Discourse отправляет на сайт, вернёт HTML. Ещё один момент, на который стоит обратить внимание: Discourse кэширует контент, полученный с внешнего сайта, в течение 10 минут. Это означает, что если вы меняете настройку сайта «Разрешённые селекторы для встраивания» (allowed embed selectors), вам придётся подождать до 10 минут, чтобы увидеть результаты применения нового значения.
Если ваш сайт Discourse ещё не запущен в продакшен, и у вас есть доступ к консоли Rails вашего сайта Discourse, вы можете очистить кэш из консоли с помощью команды Rails.cache.clear.
Дополнительная информация об этой настройке доступна здесь: Configuring allowed embed selectors.
Редакция: Я думаю, что встраивание работает как положено. Просто для некоторых сайтов его настройка оказывается непростой задачей. Я перемещу эту тему в раздел Support.
Несколько месяцев назад я создал тему Contribute > Feature, в которой предложил найти Discourse более эффективный способ парсинга встраиваемых постов: Topic embedding needs some love. Если до меня никто не займётся этим вопросом, я скоро выделю время на его решение.
Discourse представляет поисковым роботам иной вид. Чтобы его увидеть, вам нужно зайти с отключённым JavaScript.
Я не ожидаю, что встраиваемые сообщения будут индексироваться, поскольку они не существуют на сайте, где они встроены.
Привет, я имею в виду, как Discourse сканирует мой сайт на React с помощью функции встроенных постов. Мне трудно указать, какой контент включать в пост Discourse, из-за того, как он видит мою страницу на React.
Если это поможет, код, используемый для извлечения внешнего поста, находится здесь: discourse/app/models/topic_embed.rb at main · discourse/discourse · GitHub
Если у вас есть доступ к консоли Rails вашего сайта, вы можете протестировать его, чтобы получить представление о том, что происходит. Например:
TopicEmbed.find_remote("https://blog.discourse.org/2023/04/introducing-discourse-ai/")
Проблемы у меня возникали с методом parse_html, который вызывается в конце метода find_remote. Ruby Readability испытывает трудности с некоторым HTML/CSS.
Также возможно, что HTML не возвращается с вашего сайта на React. Вы можете подтвердить это, выполнив код из метода find_remote пошагово в консоли.
Это превосходно, спасибо!