Django è costruito per essere un "application server", non un "web server".
In altre parole, la pubblicazione di file statici da Django avrà prestazioni peggiori rispetto all'utilizzo di Apache o Nginx. Questi server di contenuto statici sono (1) scritti in C e (2) ottimizzati per le prestazioni.
Al contrario, Django è (1) scritto in puro Python e (2) ottimizzato per lo sviluppo di un'applicazione.
Vedere documentation.
Ciò può essere completamente soddisfacente. Ho usato Django per servire il contenuto statico in produzione, quando sapevo che il carico non sarebbe stato elevato e non stavo servendo file di grandi dimensioni. Dipende dal tipo di ambiente in cui "produzione" è effettivamente.
proposito, Una configurazione common produzione sarebbe usare Nignx, Django, Gunicorn, e Supervisore. Nginx server il contenuto statico dal disco e inversione dei proxy il resto a Gunicorn, che esegue più istanze di Django. Supervisor controlla Gunicorn e si assicura che rimanga in esecuzione. Tutto dipende dal livello di applicazione web di cui hai bisogno.
fonte
2014-04-03 22:01:13
Sto usando webfaction e Apache serve i miei file STATIC ma non sono sicuro di come viene servito il mio MEDIA. La cartella media è attualmente nella mia cartella di progetto mentre il mio 'static_files' è al di fuori di quello servito da apache. Devo posizionare la mia cartella multimediale in static_files e creare le connessioni corrette? Sono per lo più curioso di sapere se ho ancora bisogno di '+ static (...) nei miei url. La risposta SÌ/NO sarà sufficiente se si ha il tempo :) – AllTheTime
Ehi, sto usando anche la webfazione. Ho anche una cartella multimediale in un'app webfaction separata (immagino ne abbia una per statico). Quindi, alla fine, ho 3 app diverse per ogni sito Web, una per servire statica, un'altra per i media e l'altra per Django stesso. Non è necessario specificare la riga statica in urls.py. Devi solo impostare {MEDIA, STATIC} _ROOT e {MEDIA, STATIC} _URL (insieme con STATICFILES_DIRS se necessario) per indirizzarli alla cartella di destinazione corretta e agli URL configurati (quelli che hai specificato durante l'assegnazione delle app al tuo sito web).). – argaen
Btw, non posizionare la cartella media all'interno di static_files, sono cose diverse quindi tieni separati per una migliore manutenzione e struttura del tuo progetto. – argaen