Ci ho provato, ho impostato cors origins su https://xxxxx.s3.us-east-2.amazonaws.com
ho anche impostato DISCOURSE_ENABLE_CORS: true in /var/discourse/containers/app.yml
ma non funziona.
E hai eseguito ./launcher rebuild app dopo aver apportato modifiche a app.yml? Potrebbe anche essere necessario eseguire un hard refresh del browser.
Tra l’altro, potresti controllare la sezione dei file delle impostazioni di amministrazione per vedere se hai modificato impostazioni che influiscono su questa funzionalità. Inoltre, non credo che questa funzionalità possa funzionare se stai collegando un PDF ospitato su un altro server. Ho appena testato questo sul mio sito e lo stesso PDF servito da remoto non ha mostrato l’anteprima.
Facci sapere se trovi la fonte del problema!
Esempio di markdown del post in cui il remoto non ha funzionato ma quello caricato localmente ha funzionato.
remoto:
[test remote pdf](https://jsoncompare.org/LearningContainer/SampleFiles/PDF/sample-pdf-with-images.pdf)
caricato localmente:
[sample-pdf-with-images.pdf|attachment](upload://uOJLgHidEXnbqPRn2p6yP10ecQU.pdf) (3,8 MB)
Come appare:
Sì, ma non ha funzionato.
Quando abiliti S3 in Discourse
Allora per definizione i file vengono archiviati su un dominio diverso.
Suppongo che questo chiarisca il problema. Ma spero ancora che il plugin possa essere realizzato per supportare le installazioni di Discourse che hanno S3 abilitato.
Non ho molta familiarità con questa configurazione. Hai seguito queste istruzioni?
Sì, ho S3 (e la relativa impostazione “media sicura”) funzionante da un paio d’anni senza problemi.
È solo il componente PDF inline che non funziona con questa impostazione.
come riferimento, anche impostando app.yml in questo modo:
DISCOURSE_ENABLE_CORS: true
DISCOURSE_CORS_ORIGIN: ‘*’
non aiuta
Ho riscontrato esattamente questo problema e ho finito per invertire i miei caricamenti S3 solo per far funzionare questo TC, poiché ha un alto valore per noi:
Penso davvero che, dato che si tratta di #ufficiale e i caricamenti S3 sono incoraggiati, questo dovrebbe essere esaminato per vedere se può funzionare con S3 in qualche modo. Potrebbe essere che i PDF siano specificamente esclusi dai caricamenti S3, ma sarebbe un peccato dato che alcuni sono enormi!
Non credo che qualcuno non sarebbe d’accordo.
Suppongo che si tratti di consapevolezza e priorità.
Almeno per quanto riguarda la “consapevolezza”, forse @Johani, l’OP, potrebbe aggiungere una piccola nota nell’argomento di questa discussione sul fatto che il componente PDF inline non funziona con S3 abilitato.
Risparmierebbe ad altri il tempo di risolvere i problemi e aumenterebbe la consapevolezza del problema.
Ci sono alcune informazioni su S3 in questi post che ho recuperato dall’auto-timer, se possono essere d’aiuto?
Un post è stato unito a un argomento esistente: Theme-Component Topics project
Sì, funziona ![]()
Per riferimento, se qualcun altro ne avesse bisogno:
-
vai alla console AWS, secchi
https://s3.console.aws.amazon.com/s3/bucketse seleziona il bucket utilizzato per la tua installazione di Discourse -
Scegli la scheda Permessi

-
Scorri fino a “Condivisione risorse tra origini (CORS)” e scrivi:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET"
],
"AllowedOrigins": [
"https://my-site.com"
],
"ExposeHeaders": []
}
]
Dovrebbe apparire così:
Magari l’avessi trovato mentre ero ancora sui caricamenti S3!!
Potrebbe essere necessario rivederlo ora. @JammyDodger, mi chiedo se quelle cose dovrebbero essere annotate sia sull’S3 che su questo OP in modo che altri non inciampino su questo.
Assolutamente.
Stavo solo aspettando una conferma che funzionasse prima di pensare a come apportare al meglio una modifica. ![]()
Due idee, che affrontano lo stesso problema: la viewport di discourse è piuttosto stretta, quindi la maggior parte dei PDF è troppo piccola per essere letta inline. Per affrontare questo problema, potremmo
a) rendere l’iframe del PDF ridimensionabile? Ho già provato con CSS, ma senza successo: la griglia sottostante sembra essere d’intralcio
b) offrire un secondo link “apri in una nuova scheda” oltre al link per il download? Sono molto interessato a non scaricare troppe cose dal nostro forum.
[citazione=“Ralf Stockmann, post:111, topic:157649, username:Ralf_Stockmann”]
b) offrire un secondo link “apri in una nuova scheda” oltre al link per il download? Sono molto interessato a non scaricare troppa roba dal nostro forum.
[/citazione]
Questo sarebbe un netto miglioramento! E non dovrebbe essere troppo difficile da aggiungere, credo. Potrei provare a fare una PR (pull request) per questo se dovessi avere tempo nei prossimi giorni.
Penso che (b) sia già fornito come opzione, ad esempio inline o apri in una nuova scheda. Forse una terza opzione per consentire agli utenti di vedere inline e aprire in una nuova scheda? Mi piace anche questa idea.
(a) potrebbe essere difficile, dato quanto può essere difficile far apparire le cose giuste in un post.
Sarei felice di vedere un pulsante di espansione
sulla barra degli strumenti che mostri semplicemente il PDF a schermo intero invece che inline.@Ralf_Stockmann e @Alon1 avete provato…
Inoltre, sul mio Discourse uso questo metodo…
Incorpora un PDF da Google Drive
(Questo è il mio metodo preferito in modo che i PDF in iFrame siano reattivi - altri metodi falliscono per lo più nell’essere reattivi cross-browser.)
- Condividi
- Copia Link di Condivisione
- Apri Link di Condivisione in una Nuova Scheda
- Fai clic sui 3 puntini verticali nell’angolo in alto a destra
- Seleziona Incorpora elemento
- Copia il codice iFrame visualizzato
- Incollalo nell’editor di Discourse
Un PDF di prova su Google Drive è incorporato qui sotto che puoi << Scaricare Qui >>
<iframe src="https://drive.google.com/file/d/1KQ-jn7R0NmZxw955QaPu3lvLFh5zpnDe/preview" width="640" height="480" allow="autoplay"></iframe>
Ecco come appare… (che puoi anche provare dal vivo QUI sul mio sito)
Fantastico!
Semplicemente (1) installando il componente tematico IFrame Lightboxes e (2) aggiungendo l’URL del mio sito web all’elenco dei “domini di origine iframe” nelle impostazioni del componente, funziona! Aggiunge il pulsante di espansione proprio sopra l’angolo destro dell’inline PDF
Subito pronto all’uso ![]()
Dato che non sono ancora riuscito ad aprire i PDF in una nuova scheda, ho scritto un piccolo plugin per servire tutti i PDF locali con content-disposition: inline:




