我已经成功地为普通媒体文件提供媒体文件,但是当我尝试提供管理媒体文件时,我失败了。请帮助我找出问题所在,因为我已经尝试将问题解决了几个小时,但没有运气(也一直在使用Google搜索并阅读关于提供静态文件的django文档)。Django:提供ADMIN媒体文件
的错误,因为我试图访问本地主机:8000 /媒体/ A.GIF是如下:
Page not found: f:\python25\lib\site-packages\django/contrib/admin/media\a.gif
我把管理媒体文件名为“媒体”的目录,而我把正常的媒体名为“static”的目录中的文件。我也在Windows上。
下面是如何服务于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,})
)
我的settings.py(只有重要的部分):
import project_path
MEDIA_ROOT = project_path.MEDIA.replace('\\','/')
MEDIA_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/media/'
TEMPLATE_DIRS = (
project_path.TEMPLATE.replace('\\','/'),
)
而且我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")
任何提示?
或许至少请分享你如何为你的管理媒体文件(没有从Web服务器更改任何文件,但只能通过Django的源代码)
感谢提前:)
你有没有解决这个问题?我有一个与Django 1.1一起使用Mac的类似体验,服务于普通媒体文件,但不适用于管理员... – Danielb 2009-08-05 04:45:48
url设置不起作用的原因是因为`django/core/management/commands/runserver。 py`和`django.core.servers.basehttp`一起为`ADMIN_MEDIA_PREFIX`设置了一个WSGI处理程序。它处理请求之前URLconf命中 – vdboor 2012-04-06 12:05:48