MEDIA_ROOT
è la directory in cui vengono caricati i file e anche i file generati in cui sono memorizzati. Ad esempio, una delle mie app Django consente agli utenti di caricare immagini. In una delle classi modello, utilizzo il tipo ImageField
da sorl-thumbnail con upload_to='%Y-%m'
. Ogni volta che un utente carica un'immagine, il file viene memorizzato in MEDIA_ROOT/%Y-%m/
(con %Y
sostituito con l'anno corrente e %m
sostituito con il numero del mese corrente). Inoltre, quando sorl-thumbnail genera una miniatura per un'immagine caricata, posiziona la miniatura by default da qualche parte in MEDIA_ROOT/cache/
.
STATIC_ROOT
viene utilizzato per configurare la directory in cui sono posizionati gli asset statici. Ad esempio, i fogli di stile del sito, i file JavaScript e le immagini utilizzati nella progettazione di pagine Web sono i tipi di file che vanno in STATIC_ROOT
. Se hai più app installate, ciascuna app che utilizza file statici può avere la propria directory di file statici. Si utilizza la funzione di gestione collectstatic
(richiamata tramite python manage.py collectstatic
) per copiare tutti i file statici delle app in STATIC_ROOT
.
fonte
2011-09-17 18:34:47
grazie per la risposta. Ancora una domanda di follow-up. Cosa succede se ho ottenuto le immagini del prodotto? Dove dovrebbe andare? Gli amministratori possono caricarlo e devono essere visualizzati sul sito. –
@ bash-: memorizzi i percorsi delle immagini del prodotto nel database? I file di ['ImageField'] (https://docs.djangoproject.com/en/dev/ref/models/fields/#imagefield) e [' FileField'] (https://docs.djangoproject.com/en/dev/ref/models/fields/# filefield) vai in 'MEDIA_ROOT', quindi in questo caso, sì, le immagini del prodotto vanno in' MEDIA_ROOT' (ma non è necessario caricarle su 'MEDIA_ROOT' a mano-tuo l'app dovrebbe farlo). Se si stanno mantenendo manualmente le immagini dei prodotti e le si fa riferimento nei tag '' sui modelli, le immagini del prodotto dovrebbero andare in 'STATIC_ROOT'. –