Come accennato sopra, questo componente funziona solo su desktop. C’è poco vantaggio nel mostrare le anteprime su dispositivi mobili, poiché tutto sarebbe così piccolo e molto difficile da leggere.
Questo componente utilizza l’implementazione nativa del browser per renderizzare i PDF, quindi i risultati appariranno diversi su browser diversi.
Si noti inoltre che per impostazione predefinita gli upload di file PDF non sono consentiti in Discourse. Se desideri consentire agli utenti di caricare file PDF, dovrai aggiungere quell’estensione a authorized_extensions se vuoi che tutti gli utenti possano caricare PDF, oppure a authorized_extensions_for_staff se desideri limitare questa possibilità solo ai membri dello staff.
Sto ospitando i miei file caricati e le immagini su S3, ma l’anteprima è bloccata da una “policy CORS: manca l’intestazione ‘Access-Control-Allow-Origin’”.
Di seguito quanto riportato dalla console di Chrome:
Access to fetch at 'https://travelmassive-discourse-cdn.s3.dualstack.us-west-1.amazonaws.com/original/2X/b/b578f6364592121964e6a2fd4969e5c1222bd909.pdf' (redirected from 'https://lounge.travelmassive.com/uploads/short-url/pTnA3r043WfhDK8HSdPQrtNn8Lf.pdf') from origin 'https://lounge.travelmassive.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Aggiornamento
Sono riuscito a risolvere il problema aggiungendo la seguente policy CORS nella configurazione del mio bucket S3.
È necessario aggiungere che, se vedi questo testo nel messaggio di errore from origin 'https://lounge.travelmassive.com' has been, dove il tuo dominio non ha una barra / alla fine, allora nella configurazione CORS dovresti aggiungere anche il tuo dominio senza la barra alla fine, come segue: https://mydiscourse.url
Ho notato che i tuoi caricamenti sono su AWS, quindi il problema è probabilmente legato a CORS (il componente non è attivo sul tuo sito per poterne confermare). Vedi il post sotto il tuo.
Grazie per averlo condiviso!
Tieni presente che questo problema influenzerà solo gli utenti che ospitano in proprio e hanno configurato qualcosa come S3. Gli utenti che ospitano in proprio ma non utilizzano S3 non incontreranno questo problema. Anche i clienti ospitati da CDCK non dovranno preoccuparsene, poiché l’hanno già configurato.
Detto questo, la configurazione CORS è un po’ al di fuori dell’ambito di questo argomento. Se il bucket dei tuoi caricamenti non consente l’accesso al tuo dominio, ciò deve essere risolto comunque, poiché potrebbero esserci altri problemi causati da ciò.
Sono un po’ incerto su cosa sia successo qui. Entrambi i casi sembrano funzionare ogni volta che provo. Possiamo semplicemente attribuirlo a un problema di rete transitorio, ma fammi sapere se lo vedi di nuovo
Ho spinto un piccolo aggiornamento per questo componente che dovrebbe migliorare la percezione del caricamento; ora c’è un segnaposto basato sul colore del tema invece degli stili predefiniti del browser per l’Iframe. Viene visualizzato solo mentre il file viene caricato, quindi il 99% delle volte non lo noterai nemmeno.
Sarebbe possibile rendere sopprimibile l’anteprima PDF aggiungendo uno spazio prima del link di caricamento, come avviene con il oneboxing? A volte si desidera un elenco di documenti senza anteprime, altre volte invece si vuole vederne l’anteprima.
Sto usando Safari su MacOS Catalina e non ho nulla che disabiliti la visualizzazione dei PDF nel browser; ad esempio, http://www.orimi.com/pdf-test.pdf viene visualizzato correttamente. Tuttavia, quando visualizzo l’anteprima in theme-creator, continuo a vedere la finestra/il messaggio “Plug-in bloccato”.
Le impostazioni specifiche del sito nelle preferenze di Safari non sono diverse da quelle di altri siti web.
Ancora non funziona per me su Safari in MacOS Big Sur. Nessuna impostazione speciale per i plugin del blog, e altri PDF vengono visualizzati nel browser.
Safari Web Inspector riporta i seguenti errori durante il caricamento della pagina di anteprima in theme-creator: Direttiva Content-Security-Policy non riconosciuta 'worker-src'. Caricamento di blob:https://theme-creator.discourse.org/7b9b62c7-e782-4080-a521-04e3b06aa142 rifiutato perché non è presente nella direttiva object-src della Content Security Policy.
Stesso problema per me su Firefox, ma solo dopo la seconda visita
Esiste una soluzione alternativa per questo problema? Una dichiarazione manuale nella configurazione CSP?
Disabilitare i plugin tramite la Modalità Sicura non fa alcuna differenza, così come rimuovere ogni altro componente del tema.
È successo dopo aver spostato le immagini e i caricamenti di file su S3, che potrebbe essere il colpevole. Spero di no, perché non possono essere spostati indietro facilmente!
Sono bloccato. Peccato, dato che è un componente eccellente. Qualche suggerimento?
I miei link nei messaggi hanno il formato domain/secure-media-uploads/original/...
ma nella console/network vedo che i download effettivi provengono dal bucket
Vedi le credenziali amz?
Se non è così, forse questo può aiutare?
Ricordo anche che qualcosa di strano stava accadendo quando ho provato a spostare un post tra le categorie (o forse era un copia/incolla?): alla fine ha funzionato quando ho ricaricato il file.
Quindi sono bloccato, soprattutto sul motivo per cui funziona nei due forum che gestisco e non nell’altro, con S3 come unica differenza. E che tu riesca a farlo funzionare con S3. Sono davvero confuso.
Potrebbe esserci un conflitto con un altro componente o tema. Per me funziona come previsto. Inizia disabilitando altri componenti e prova a utilizzare il tema predefinito se il tuo è diverso. Lo stesso vale per i plugin.
Ok, ho fatto progressi. Disabilitando i caricamenti su S3, il problema si risolve per i nuovi caricamenti. Ma mi ritrovo con un caos tra S3 e locale se seguo questa strada!
Potrebbe essere che non sto usando la funzionalità CDN (CloudFront), che genera gli errori fastidiosi nella pagina di amministrazione. Proverò a configurarla e vediamo se funziona.
Sto cercando un plugin che permetta di aprire il PDF in una nuova scheda.
Il comportamento attuale del mio Discorso consente solo il download.
Sarebbe possibile con un tema simile?