I've been successfully serving media files for the normal MEDIA files, but when I tried serving admin media files, I failed. please kindly help me locating the problem, as I've tried to troubleshoot the problem for several hours already with no luck (been googling too and read the django doc about serving static files as well).
The error as I tried to access localhost:8000/media/a.gif is as following:
Page not found:
f:python25libsite-packagesdjango/contrib/admin/mediaa.gif
I put the admin media files in directory named "media", while I put the normal media files in directory named "static". I'm on Windows, too.
Here's how I serve the ordinary media files in urls.py:
# 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,})
)
And my settings.py (only the important pieces):
import project_path
MEDIA_ROOT = project_path.MEDIA.replace('\','/')
MEDIA_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/media/'
TEMPLATE_DIRS = (
project_path.TEMPLATE.replace('\','/'),
)
And my 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")
Any hints?
or maybe at least please share how do you serve your admin media files (without changing any files from the web server, but only via the django source code)
Thanks in advance :)
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…