Diese Anleitung erklärt, wie man Oneboxen in Discourse konfiguriert und Fehler behebt. Sie behandelt Admin-Einstellungen, die Funktionsweise von Oneboxen und Schritte zur Behebung häufiger Probleme.
Erforderliches Benutzerniveau: Administrator
Oneboxen sind Rich-Link-Vorschauen, die Benutzer in ihren Beiträgen erstellen können. Während Benutzer diese Vorschauen einfach generieren können, haben Seitenadministratoren zusätzliche Kontrollmöglichkeiten und müssen möglicherweise Fehler beheben, wenn Links nicht wie erwartet als Vorschau angezeigt werden.
Admin-Konfiguration
Um Onebox-Einstellungen zu verwalten:
- Gehen Sie zum Admin-Panel
- Navigieren Sie zum Abschnitt Site-Einstellungen
- Suchen Sie nach „onebox“
Sie sehen eine Liste von Onebox-bezogenen Einstellungen:
Einige bemerkenswerte Einstellungen sind:
post onebox maxlength: Steuert die Textmenge, die in einer Onebox enthalten istenable inline onebox on all domains: Aktiviert Inline-Oneboxen und wandelt einfache URLs in verlinkte Titel um (z. B. wirdhttps://en.wikipedia.org/wiki/Fun_(band)zu „Fun (band) - Wikipedia“)blocked onebox domains: Ermöglicht das Deaktivieren von Oneboxen für bestimmte Domains
Wie Oneboxen funktionieren
Wenn ein Link in einem Beitrag enthalten ist, besucht Discourse die Zielseite und sucht nach Open Graph- oder oEmbed-Tags, einschließlich:
- Seitenadresse
- Titel
- Hervorgehobenes Bild
- Seiten-Icon (oder Favicon)
- Beschreibung (obligatorisch)
- Produktpreis (falls relevant)
Discourse erfordert, dass das Beschreibungs-Tag 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 hervorgehobene Bild, das Icon und die Beschreibung anzeigt:
Fehlerbehebung
Wenn Oneboxen nicht wie erwartet funktionieren, versuchen Sie die folgenden Schritte:
-
Testen Sie die Seite mit iFramely:
- Fügen Sie den Link ein und prüfen Sie, ob korrekte 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
- Verifizieren Sie, dass die Zielwebsite den User Agent von Discourse nicht blockiert
-
Wenn interne Links nicht als Oneboxen angezeigt werden:
- Stellen Sie sicher, dass sich der Link nicht in einer sicheren Kategorie befindet
- Interne Links werden aus Sicherheitsgründen nur in öffentlichen Kategorien oder innerhalb derselben Kategorie als Onebox angezeigt
Von der Rails-Konsole aus können Sie Oneboxen explizit invalidieren/abrufen, indem Sie die Methoden aufrufen, während Sie testen, indem Sie Folgendes tun:
[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.onebox(url)
=> "…<aside class=\"onebox …(elided)"
