2015-09-23 13 views
5

Sto cercando di comprendere come le risorse statiche funzionano in un ambiente di produzione, la documentazione sembra piuttosto spaventosa, ma potrebbe essere solo io.Risorse nell'ambiente prod e caricamento file

Secondo http://www.phoenixframework.org/docs/deployment, è necessario eseguire MIX_ENV=prod mix phoenix.digest come parte della distribuzione. Questo sembra duplicare tutte le mie risorse, con una stringa concatenata al nome, che viene poi servita se si utilizza static_path/2, suppongo che questo abbia qualcosa a che fare con il caching bust sulla distribuzione. Grande!

La funzione digest crea anche manifest.json dentro la mia cartella priv, sembra qualcosa di simile ..

{"images/calltoaction.png":"images/calltoaction-13cfefeb09c991b12090bcf0a10f2dd2.png","fonts/fontawesome-webfont.woff2":"fonts/fontawesome-webfont-4b5a84aaf1c9485e060c503a0ff8cadb.woff2","im.....

Suppongo Phoenix usa questo per mappare i beni a loro corrispondenti version.Please fare corretta io, se ho sbagliato completamente qui. Oooh bene, alla mia domanda.

Nella mia applicazione gli amministratori sono in grado di caricare immagini nel pannello di amministrazione, che vengono caricate su /priv/static/images/model/version/... Il problema è che queste immagini appena caricate non sono nel file manifest.json e quindi non verranno mostrate?

Questo sembra molto funky, poiché le nuove immagini non vengono mostrate, né vengono sostituite le immagini ecc. Come gestirò questo problema? Dovrei caricare le mie immagini in un altro posto, che non dovrebbe essere digerito?

risposta

1

Il manifest è una funzionalità di memorizzazione nella cache. Viene utilizzato da static_path per generare collegamenti che puntano alle risorse. Se non è possibile utilizzarlo per tutte le risorse, poiché vengono caricate in modo dinamico, non è necessario utilizzarle. In altre parole, dovresti essere in grado di caricare le tue risorse e usare semplicemente static_path come al solito e dovrebbero essere servite come in fase di sviluppo.

+0

Ho finito per aggiungere un altro Plug.Static e utilizzare/upload per i file, questo sembra evitare la cache per i file caricati. :) – MartinElvar

+1

È strano che tu abbia bisogno di un altro plug però. Solo per curiosità: hai provato il suggerimento sopra e non ha funzionato o il mio suggerimento è arrivato troppo tardi? :) –

+1

Non ho mai usato 'static_path' per le immagini caricate, mi è sembrato che il manifest manifestsimpedisse a tutti i nuovi upload di essere mostrato a tutti, motivo per cui ho aggiunto un nuovo plug. – MartinElvar

Problemi correlati