Настройка и устранение неполадок oneboxes

:bookmark: Это руководство объясняет, как настроить и устранить неполадки с oneboxes в Discourse. Оно охватывает параметры администратора, принцип работы oneboxes и шаги по решению распространённых проблем.

:person_raising_hand: Требуемый уровень пользователя: Администратор

Oneboxes — это расширенные предпросмотры ссылок, которые пользователи могут создавать в своих сообщениях. Хотя пользователи могут легко генерировать такие предпросмотры, администраторы сайта имеют дополнительные возможности управления и могут нуждаться в устранении неполадок, когда ссылки не отображаются как ожидалось.

Настройка администратора

Для управления параметрами onebox:

  1. Перейдите в панель администратора
  2. Перейдите в раздел настроек сайта
  3. Найдите “onebox”

Вы увидите список параметров, связанных с onebox:

Некоторые важные параметры:

  • post onebox maxlength: Контролирует объём текста, включаемого в onebox
  • max oneboxes per post: Ограничивает количество oneboxes, которые могут отображаться в одном сообщении (по умолчанию: 50)
  • enable inline onebox on all domains: Включает встроенные oneboxes для всех доменов, преобразуя простые URL в связанные заголовки (например, https://en.wikipedia.org/wiki/Fun_(band) становится “Fun (band) - Wikipedia”). Включено по умолчанию.
  • blocked onebox domains: Позволяет отключить oneboxes для конкретных доменов
  • block onebox on redirect: При включении предотвращает создание onebox для URL, которые перенаправляют на другое место назначения

Как работают oneboxes

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

  • Адрес сайта
  • Заголовок
  • Изображение-обложка
  • Иконка сайта (или favicon)
  • Описание (обязательно)
  • Цена товара (если применимо)

:warning: Discourse требует, чтобы тег описания присутствовал и содержал достаточно текста для краткого изложения страницы. Без этого целевая ссылка не будет преобразована в onebox.

Вот пример onebox для https://discourse.org, отображающий заголовок сайта, изображение-обложку, иконку и описание:

Устранение неполадок

Если oneboxes не работают как ожидалось, попробуйте следующие шаги:

  1. Протестируйте сайт с помощью iFramely:

    • Вставьте ссылку и проверьте, используются ли правильные мета-теги OpenGraph или oEmbed
    • Убедитесь, что текст описания присутствует и достаточно информативен
  2. Проверьте, не блокируется ли запрос onebox:

    • Некоторые хосты могут блокировать «неизвестных» пользователей (user agents)
    • Убедитесь, что целевой сайт не блокирует user agent Discourse
  3. Для внутренних ссылок, которые не отображаются как oneboxes:

    • Убедитесь, что ссылка не находится в защищённой категории
    • Внутренние ссылки преобразуются в oneboxes только в публичных категориях или в пределах одной категории по соображениям безопасности

Из консоли Rails вы можете явно инвалидировать/получить oneboxes, вызвав соответствующие методы во время тестирования:

[1] pry(main)> Oneboxer.invalidate(url)
=> 0

[2] pry(main)> Oneboxer.onebox(url)
=> "<aside class="onebox …(elided)"

[3] pry(main)> InlineOneboxer.invalidate(url)
=> 0

[4] pry(main)> InlineOneboxer.lookup(url)
=> {url: "https://example.com", title: "Example Page Title"}

Дополнительные ресурсы

2 лайка

Это хороший ресурс, но, похоже, он не совсем подходит.

Я сделал это, и он вернул одно окно. Контента было немного, но это всё же выглядело лучше, чем простая ссылка на URL.

Предполагая, что проблема в недостатке контента, из-за чего на моём сайте не работает однооконный режим, поскольку не выполняется это требование, что можно сделать?

Я не вижу настройки для включения однооконного режима для сайтов с недостаточным объёмом контента. Можно ли связаться с администратором сайта, чтобы он внёс необходимые изменения на своей стороне? Если да, то что именно нужно запросить?

Как это поможет решить проблему отсутствия однооконного режима?

2 лайка