Ich habe erfolgreich Mediendateien für die normalen MEDIA-Dateien geliefert, aber als ich versucht habe, Admin-Mediendateien zu liefern, scheiterte ich. Bitte helfen Sie mir, das Problem zu finden, da ich versucht habe, das Problem für mehrere Stunden zu beheben, ohne Glück (habe auch gegoogelt und lese den django doc über die Bereitstellung von statischen Dateien).Django: Serving ADMIN-Mediendateien
Der Fehler, als ich versuchte localhost zuzugreifen: 8000/media/a.gif ist wie folgt:
Page not found: f:\python25\lib\site-packages\django/contrib/admin/media\a.gif
ich die Admin-Media-Dateien im Verzeichnis setzte den Namen „Medien“, während ich die normalen Medien setzen Dateien im Verzeichnis "statisch". Ich bin auch auf Windows.
Hier ist, wie ich die gewöhnlichen Mediendateien in urls.py dienen:
# serve static files
from django.conf import settings
if settings.ENVIRONMENT==settings.ENV_DEVELOPMENT:
urlpatterns += patterns("django.views",
url(r"%s(?P<path>.*)$" % settings.MEDIA_URL[1:], "static.serve", {"document_root": settings.MEDIA_ROOT,})
)
Und mein settings.py (nur die wichtigen Stücke):
import project_path
MEDIA_ROOT = project_path.MEDIA.replace('\\','/')
MEDIA_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/media/'
TEMPLATE_DIRS = (
project_path.TEMPLATE.replace('\\','/'),
)
Und mein project_path.py:
import sys
from os.path import dirname, join
ROOT = dirname(__file__)
APP = join(ROOT, "apps")
TEMPLATE = join(ROOT, "templates")
MEDIA = join(ROOT, "static")
ADMIN_MEDIA = join(ROOT, "media")
Irgendwelche Hinweise?
oder vielleicht zumindest bitte teilen, wie dienen Sie Ihre Admin-Media-Dateien (ohne Dateien aus dem Web-Server zu ändern, sondern nur über den django Quellcode)
Vielen Dank im Voraus :)
Haben Sie das jemals gelöst? Ich habe eine ähnliche Erfahrung auf dem Mac mit Django 1.1, funktioniert normale Mediendateien funktioniert aber nicht für den Admin ... – Danielb
Der Grund, dass die URL-Einstellungen nicht funktionieren, ist, weil 'Django/core/management/commands/runserver. py 'zusammen mit' django.core.servers.basehttp' richten Sie einen WSGI-Handler für 'ADMIN_MEDIA_PREFIX' ein. Es behandelt die Anfrage vor der URLconf ist – vdboor