Questa guida spiega come configurare e risolvere i problemi dei onebox in Discourse. Copre le impostazioni dell’amministratore, il funzionamento dei onebox e i passaggi per risolvere i problemi comuni.
Livello utente richiesto: Amministratore
I onebox sono anteprime di link ricche che gli utenti possono creare nei loro post. Mentre gli utenti possono 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 dell’amministratore
Per gestire le impostazioni dei onebox:
- Vai al pannello Admin
- Naviga nella sezione delle impostazioni del sito
- Cerca “onebox”
Vedrai un elenco di impostazioni relative ai onebox:
Alcune impostazioni degne di nota includono:
post onebox maxlength: controlla la quantità di testo inclusa in un oneboxenable inline onebox on all domains: abilita i 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 i onebox per domini specifici
Come funzionano i onebox
Quando un link viene incluso in un post, Discourse visita la pagina di destinazione e cerca i tag Open Graph o oEmbed, tra cui:
- 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 \u003chttps://discourse.org\u003e che mostra il titolo del sito, l’immagine in primo piano, l’icona e la descrizione:
Risoluzione dei problemi
Se i onebox non funzionano come previsto, prova questi passaggi:
-
Testa il sito utilizzando iFramely:
- Incolla il link e verifica se utilizza i meta tag OpenGraph o oEmbed corretti
- Assicurati che il testo della descrizione sia presente e adeguato
-
Verifica se la richiesta del 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 si trovi 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 puoi invalidare/recuperare esplicitamente i onebox chiamando i metodi durante il test eseguendo:
[1] pry(main)> Oneboxer.invalidate(url)
=> 0
[2] pry(main)> Oneboxer.onebox(url)
=> "<aside class=\"onebox …(eliso)"
[3] pry(main)> InlineOneboxer.invalidate(url)
=> 0
[4] pry(main)> InlineOneboxer.onebox(url)
=> "<aside class=\"onebox …(eliso)"
