通常の MEDIA ファイルのメディア ファイルは正常に提供されていますが、管理者のメディア ファイルを提供しようとすると失敗しました。数時間問題のトラブルシューティングを試みましたが、運が悪かったので、問題を特定するのを手伝ってください(グーグルも行って、静的ファイルの提供に関するdjangoドキュメントも読んでください)。
localhost:8000/media/a.gif にアクセスしようとしたときのエラーは次のとおりです。
ページが見つかりません: f:\python25\lib\site-packages\django/contrib/admin/media\a.gif
管理メディア ファイルは「media」という名前のディレクトリに置き、通常のメディア ファイルは「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ソースコードのみを介して)
前もって感謝します :)