Diese Anleitung erklärt, wie Sie Oneboxes in Discourse konfigurieren und Fehler beheben. Sie behandelt Admin-Einstellungen, die Funktionsweise von Oneboxes und Schritte zur Lösung häufiger Probleme.
Erforderliche Benutzerstufe: Administrator
Oneboxes sind umfangreiche Link-Vorschauen, die Benutzer in ihren Beiträgen erstellen können. Obwohl Benutzer diese Vorschauen leicht generieren können, haben Site-Administratoren zusätzliche Kontrollmöglichkeiten und müssen möglicherweise Fehler beheben, wenn Links nicht wie erwartet als Vorschau angezeigt werden.
Admin-Konfiguration
So verwalten Sie Onebox-Einstellungen:
- Gehen Sie zum Admin-Bereich
- Navigieren Sie zum Abschnitt Site-Einstellungen
- Suchen Sie nach „onebox"
Sie sehen eine Liste der Onebox-bezogenen Einstellungen:
Einige bemerkenswerte Einstellungen sind:
post onebox maxlength: Steuert die Textmenge, die in einer Onebox enthalten istmax oneboxes per post: Begrenzt die Anzahl der Oneboxes, die in einem einzelnen Beitrag angezeigt werden können (Standard: 50)enable inline onebox on all domains: Aktiviert Inline-Oneboxes auf allen Domains und wandelt einfache URLs in verlinkte Titel um (z. B. wirdhttps://en.wikipedia.org/wiki/Fun_(band)zu „Fun (band) - Wikipedia"). Dies ist standardmäßig aktiviert.blocked onebox domains: Ermöglicht das Deaktivieren von Oneboxes für bestimmte Domainsblock onebox on redirect: Wenn aktiviert, verhindert dies das Oneboxen von URLs, die an ein anderes Ziel umleiten
Funktionsweise von Oneboxes
Wenn ein Link in einem Beitrag enthalten ist, besucht Discourse die Zielseite und sucht nach Open Graph- oder oEmbed-Tags, einschließlich:
- Site-Adresse
- Titel
- Ausgewähltes Bild
- Site-Symbol (oder Favicon)
- Beschreibung (obligatorisch)
- Produktpreis (falls relevant)
Discourse erfordert, dass das Beschreibungstool vorhanden ist und genügend Text enthält, um die Seite zusammenzufassen. Ohne dies wird der Ziel-Link nicht als Onebox angezeigt.
Hier ist ein Beispiel für eine Onebox für https://discourse.org, die den Seitentitel, das ausgewählte Bild, das Symbol und die Beschreibung zeigt:
Fehlerbehebung
Wenn Oneboxes nicht wie erwartet funktionieren, versuchen Sie diese Schritte:
-
Testen Sie die Site mit iFramely:
- Fügen Sie den Link ein und prüfen Sie, ob die korrekten OpenGraph- oder oEmbed-Metatags verwendet werden
- Stellen Sie sicher, dass der Beschreibungstext vorhanden und ausreichend ist
-
Prüfen Sie, ob die Onebox-Anfrage blockiert wird:
- Einige Hosts blockieren möglicherweise unbekannte User-Agents
- Überprüfen Sie, ob die Zielseite den User-Agent von Discourse nicht blockiert
-
Für interne Links, die nicht als Oneboxes angezeigt werden:
- Stellen Sie sicher, dass der Link sich nicht in einer sicheren Kategorie befindet
- Interne Links werden aus Sicherheitsgründen nur in öffentlichen Kategorien oder innerhalb derselben Kategorie als Onebox angezeigt
Über die Rails-Konsole können Sie Oneboxes explizit ungültig machen/abrufen, indem Sie die Methoden während des Testens aufrufen:
[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"}
