Domanda

Sto lavorando a un sito web di piccola scala per la mia scuola (meno di 100 utenti al giorno) e si stava chiedendo se ci fu un modo in cui si trovava anche i file statici del negozio sul server Django invece di distribuire un secondo server per gestire i file statici.Le ricerche di Google accendono cose come quanto segue: https://docs.djangoproject.com/ IT / dev / HOWTO / Static-Files / , ma mi chiedo se ci fosse un modo più semplice per farlo, anche se non fosse molto efficiente, sul server Django.

È stato utile?

Soluzione

Sì, è certamente possibile servire i file statici utilizzando lo stesso server. Il DOC fornisce un esempio di fare questo usando Apache / Mod_WSGI https://docs.djangoproject.com/en/1.4/Howto/Deillment/WSGI/ModWSGI/#Serving-Files

.

Se, tuttavia, non hai opzione ma per servire i file multimediali sullo stesso Apache Virtualhost come Django, è possibile impostare Apache per servire alcuni URL come media statici e altri utilizzando l'interfaccia Mod_SGI su Django.

Vale la pena notare che quando il Document si fa riferimento utilizzando un server Web separato non significa necessariamente un'altra casella (virtuale o fisica) solo un server separato ottimizzato per servire le risorse statiche. Da https: / /docs.djangoproject.com/en/1.4/howto/static-files/#serving-static-files-from-a-edicato-server

.

Le più grandi app Django utilizzano un server Web separato - I.e., non è anche in esecuzione Django - per servire i file statici. Questo server esegue spesso un tipo diverso di server Web - più veloce ma meno completo.

Una configurazione comune sarebbe eseguire Nginx per le risorse statiche davanti a Apache / Mod_SGI, Gunicorn o UWSGI poiché il server WSGI che per un piccolo sito potrebbe essere fatto su un singolo server.

Altri suggerimenti

Se per "Django Server", si intende il server di sviluppo gestito da python manage.py runserver, che consiglierei a questo.

È davvero una cattiva idea eseguire il server di sviluppo Django in qualsiasi tipo di ambiente di produzione e di servire i file statici attraverso di esso.Non penso che l'app StaticoFiles ti permetterà anche se DEBUG = FALSE.

Tuttavia, se si intende servire il contenuto statico attraverso lo stesso server Web (Lightpd, Apache, Nginx) che serve l'applicazione Django, quindi è possibile farlo facilmente eseguendo python manage.py collectstatic nella directory del progetto per copiare tutti i file statici inUna directory e configurazione del server Web per fungere da quella directory come qualsiasi sito statico.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top