Questa guida spiega come configurare e risolvere i problemi relativi alle onebox in Discourse. Copre le impostazioni di amministrazione, il funzionamento delle onebox e i passaggi per risolvere i problemi comuni.
Livello utente richiesto: Amministratore
Le onebox sono anteprime di link ricche che gli utenti possono creare nei loro post. Sebbene gli utenti possano generare facilmente queste anteprime, gli amministratori del sito hanno controlli aggiuntivi e potrebbero dover risolvere i problemi quando i link non vengono visualizzati come previsto.
Configurazione amministrativa
Per gestire le impostazioni delle onebox:
- Vai al pannello di amministrazione
- Naviga alla sezione delle impostazioni del sito
- Cerca “onebox”
Vedrai un elenco di impostazioni relative alle onebox:
Alcune impostazioni degne di nota includono:
post onebox maxlength: Controlla la quantità di testo inclusa in una oneboxenable inline onebox on all domains: Abilita le onebox inline, convertendo gli URL semplici in titoli collegati (ad esempio,https://en.wikipedia.org/wiki/Fun_(band)diventa “Fun (band) - Wikipedia”)blocked onebox domains: Ti consente di disabilitare le onebox per domini specifici
Come funzionano le onebox
Quando un link è incluso in un post, Discourse visita la pagina di destinazione e cerca i tag Open Graph o oEmbed, inclusi:
- Indirizzo del sito
- Titolo
- Immagine in primo piano
- Icona del sito (o favicon)
- Descrizione (obbligatoria)
- Prezzo del prodotto (se pertinente)
Discourse richiede che il tag di descrizione sia presente e contenga testo sufficiente per riassumere la pagina. Senza questo, il link di destinazione non verrĂ convertito in onebox.
Ecco un esempio di onebox per https://discourse.org/ che mostra il titolo del sito, l’immagine in primo piano, l’icona e la descrizione:
Risoluzione dei problemi
Se le onebox non funzionano come previsto, prova questi passaggi:
-
Testa il sito utilizzando iFramely:
- Incolla il link e verifica che stia utilizzando i meta tag OpenGraph o oEmbed corretti
- Assicurati che il testo della descrizione sia presente e adeguato
-
Verifica se la richiesta di onebox viene bloccata:
- Alcuni host potrebbero bloccare gli user agent “sconosciuti”
- Verifica che il sito di destinazione non stia bloccando lo user agent di Discourse
-
Per i link interni che non vengono visualizzati come onebox:
- Assicurati che il link non sia in una categoria protetta
- I link interni vengono convertiti in onebox solo nelle categorie pubbliche o all’interno della stessa categoria per motivi di sicurezza
Dalla console rails è possibile invalidare/recuperare esplicitamente le onebox chiamando i metodi durante il test eseguendo:
[1] pry(main)=> Oneboxer.invalidate(url)
=> 0
[2] pry(main)=> Oneboxer.onebox(url)
=> "…<aside class=\"onebox …(omesso)"
[3] pry(main)=> InlineOneboxer.invalidate(url)
=> 0
[4] pry(main)=> InlineOneboxer.onebox(url)
=> "…<aside class=\"onebox …(omesso)"
