Abhängig von Ihrem Web-Server-Setup, können Sie es eine von zwei Möglichkeiten:
symbolischen Link
In Ihrer Webseite Stammordnern, sollten Sie einen symbolischen Link zu Ihrem Django Admin-Medienverzeichnis erstellen, mit der Name als ADMIN_MEDIA_PREFIX
in den Einstellungen Ihrer Django-App. Standardmäßig ist dies /media/
, also erstellen Sie in Ihrem Webstammordner einen Symlink namens media
bis /usr/lib/python2.5/site-packages/django/contrib/admin/media
. (Beachten Sie die abschließende media
am Ende des Symlink, die in Ihrem eigenen Beispiel fehlt - die Django Admin-Medien befindet sich in einem media
Unterverzeichnis in
contrib/admin).
Apache Alias
Wenn Ihr Produktionsserver Apache ist, und Sie können die Root-Konfiguration ändern, können Sie mod_alias
verwenden Sie den Pfad zu Django Admin-Medien einzurichten. /media/
in dieses Verzeichnis aufgelöst werden
<VirtualHost *:80>
Alias /media/ /usr/local/lib/python2.5/site-packages/django/contrib/admin/media/
</VirtualHost>
Auf diese Weise werden alle Anforderungen unter dem Pfad: Wieder unter der Annahme, dass Ihr ADMIN_MEDIA_PREFIX
ist /media/
, können Sie einen Alias wie so einrichten.
Eine ähnliche Technik existiert für die meisten anderen Server, wie Lighttpd oder nginx; Konsultieren Sie die Dokumentation Ihres Servers, wenn Sie Apache nicht verwenden.
Die Lösung mit Apache mod_alias
ist wahrscheinlich für den Einsatz am besten ist, aber die symbolische Links Ansatz funktioniert auch genauso gut.
Der Grund dafür, dass Ihre App auf Ihrem Staging-Server funktioniert hat, liegt wahrscheinlich daran, dass sie mit dem internen Django-Webserver ausgeführt wurde, der den Pfad zum Administratormedienverzeichnis automatisch auflösen kann.
Siehe auch http://stackoverflow.com/questions/1081596/django-serving-admin-media-files hilft. –