In Produktionsumgebungen haben Sie bereits real http-Server, die eine Verbindung zu django (entweder über mod_python, fcgi oder wsgi), so seine nur gesunden Menschenverstand, um Dateien direkt von ihm dienen.
Dadurch werden Antworten schneller gesendet:
- Wenn Sie statische Dateien über einen richtig konfigurierten Apache oder Nginx bereitstellen, ist der Overhead minimal. Auf Anfrage prüft der Server, ob die Datei im angegebenen Pfad existiert, und sendet sie dann an den Browser (und fügt natürlich einige Header hinzu).
- wenn Sie statische Datei über django hinter Apache oder nginx konfiguriert dienen erstens Webserver verbindet sich mit django, dann django behandelt Dinge viel komplexer:
- erstellt ein Anforderungsobjekt,
- führt urlpatterns REGEXP-Matches durch, bis es Zeilen findet, die für statisch verantwortlich sind,
- führt einen statischen Serving-Code aus, der ihn an den Benutzer zurücksendet...
Es wird viel weniger Ressourcen verbrauchen:
- jeder Django-Prozess verbraucht LOT von Speicher, denken Sie wie 10 mal als gleich konfiguriert Apache-Prozess, die gleiche statische Datei,
Es wird besser skalieren:
- Richtig konfiguriert kann nginx 100x mehr Anfragen verarbeiten und verbraucht dabei viel weniger CPU und Speicher...
Sie kann ausgelagert werden:
- obwohl es geschrieben wird, dass Sie Apache oder Nginx konfigurieren müssen, müssen Sie nicht - Sie können diese Dateien an Dienste wie Amazon S3 oder Google APIs auslagern, so dass js & css "näher" an den Benutzern sind und im Falle von Diensten wie Google APIs besteht die Möglichkeit, dass die Bibliothek, die Sie hinzufügen möchten (wie jQuery), bereits im Browser des Benutzers zwischengespeichert ist.
Alle diese Dinge zusammengenommen machen Ihre Website einfach zu einem schneller laden .