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 ricche dei collegamenti 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 collegamenti non vengono visualizzati come previsto.
Configurazione amministrativa
Per gestire le impostazioni delle onebox:
- Vai al pannello di Amministrazione
- Naviga nella sezione Impostazioni del sito
- Cerca “onebox”
Vedrai un elenco di impostazioni relative alle onebox:
Alcune impostazioni notevoli includono:
post onebox maxlength: Controlla la quantità di testo inclusa in una oneboxmax oneboxes per post: Limita il numero di onebox che possono apparire in un singolo post (predefinito: 50)enable inline onebox on all domains: Abilita le onebox inline su tutti i domini, convertendo gli URL semplici in titoli collegati (ad esempio,https://en.wikipedia.org/wiki/Fun_(band)diventa “Fun (band) - Wikipedia”). Questa opzione è abilitata per impostazione predefinita.blocked onebox domains: Consente di disabilitare le onebox per domini specificiblock onebox on redirect: Se abilitato, impedisce la creazione di onebox per URL che reindirizzano a una destinazione diversa
Come funzionano le onebox
Quando un collegamento è 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 evidenza
- Icona del sito (o favicon)
- Descrizione (obbligatoria)
- Prezzo del prodotto (se pertinente)
Discourse richiede che il tag descrizione sia presente e contenga testo sufficiente per riassumere la pagina. Senza questo, il collegamento di destinazione non genererĂ una onebox.
Ecco un esempio di onebox per https://discourse.org che mostra il titolo del sito, l’immagine in evidenza, 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 collegamento e verifica se vengono utilizzati i corretti tag meta OpenGraph o oEmbed
- Assicurati che il testo della descrizione sia presente e adeguato
-
Controlla se la richiesta della onebox viene bloccata:
- Alcuni host potrebbero bloccare gli user agent “sconosciuti”
- Verifica che il sito di destinazione non stia bloccando l’user agent di Discourse
-
Per i collegamenti interni che non vengono visualizzati come onebox:
- Assicurati che il collegamento non si trovi in una categoria sicura
- I collegamenti interni generano onebox solo nelle categorie pubbliche o all’interno della stessa categoria per motivi di sicurezza
Dalla console rails puoi invalidare/recuperare esplicitamente le onebox chiamando i metodi durante i test eseguendo:
[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"}
