我已經成功地爲普通媒體文件提供媒體文件,但是當我嘗試提供管理媒體文件時,我失敗了。請幫助我找出問題所在,因爲我已經嘗試將問題解決了幾個小時,但沒有運氣(也一直在使用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