Предпросмотр ссылки не работает для конкретного сайта

Привет!

Я управляю недавно мигрированным форумом на Discourse. Красиво оформленные «превью ссылок» корректно генерируются для всех сайтов, которые я пробовал, кроме одного (который для нас очень важен):

Поскольку это не работает даже здесь, на Meta, я задаюсь вопросом: это ошибка в Discourse или, возможно, какая-то особенность самого сайта, вызывающая проблемы? Есть ли какие-то подсказки, что это может быть?

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

Спасибо.

Гем Discourse onebox требует, чтобы сайты правильно определяли теги Open Graph. На сайте, о котором вы упомянули в своём сообщении, нет тегов Open Graph.

Поэтому мы мало что можем с этим сделать. Чтобы сайт отображался в Discourse в виде одной коробки (onebox), необходимо добавить соответствующие теги OG.

Отлично, это именно то, что мне нужно знать. Я попробую добавить эти теги. Спасибо.

:thinking: Итак, я добавил теги: проверьте мой сайт на iframeley

И у меня получается показать Onebox в WhatsApp:

Но не в Discourse:

Я подумал, что это может быть проблема кэширования, но похоже, что нет. Я пробовал на разных сайтах Discourse и с различными вариантами URL…

Есть ли какой-то другой тег, который требует Discourse и который я упустил? В другом посте здесь я прочитал, что обязательными являются только title и description, и у меня есть эти два…

Спасибо за помощь.

onebox посещает целевую страницу и проверяет наличие тегов Open Graph или oEmbed , включая:

  • адрес сайта
  • заголовок
  • главное изображение
  • описание (обязательно)
  • цена товара

:warning: Обратите внимание, что Discourse требует наличия тега description, содержащего достаточный текст для краткого описания страницы; в противном случае целевая ссылка не будет оформлена как onebox.

Другое хорошее объяснение доступно по адресу Creating rich link previews with Onebox.

Расширенные iframe

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

Хорошо, спасибо. У меня есть заголовок и описание. Возможно, именно отсутствие атрибута og:image вызывает проблемы у Discourse, хотя я нигде не встречал, что этот атрибут обязателен.

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

Это оказывается сложным. Теперь у меня есть og:image в моих мета-данных, и при проверке с помощью iframeley всё выглядит нормально.

Но всё равно мне не удаётся заставить Discourse создать onebox… :frowning:

Что может быть упущено?

Одного изображения недостаточно. Требуется также текстовое описание.

Возможно, я упускаю что-то очевидное, но что не так или чего не хватает в моём мета-теге og:description?

Ничего, но описание должно существовать и содержать минимальное количество символов, с точки зрения Discourse.

Вы можете ознакомиться с этими двумя ссылками. В конце первого поста по первой ссылке есть небольшой материал о расширенных iframe, а сразу под размещённым изображением говорится о Advanced iFrames.
В конце второй темы (задачи с Onebox) есть что-то интересное, что вы можете попробовать… команду curl — и в посте приведён код для использования (просто замените ваш URL на показанный).