Tôi đã phân phối thành công tệp phương tiện cho các tệp MEDIA bình thường, nhưng khi tôi cố gắng phân phát tệp phương tiện quản trị, tôi đã thất bại. xin vui lòng giúp tôi xác định vị trí vấn đề, như tôi đã cố gắng để khắc phục sự cố trong vài giờ đã không có may mắn (được googling quá và đọc django doc về phục vụ các tập tin tĩnh là tốt).Django: phục vụ các tệp phương tiện ADMIN
Các lỗi như tôi đã cố gắng để truy cập vào localhost: 8000/media/a.gif là như sau:
Page not found: f:\python25\lib\site-packages\django/contrib/admin/media\a.gif
tôi đặt các tập tin quản trị truyền thông trong thư mục có tên là "phương tiện truyền thông", trong khi tôi đặt phương tiện truyền thông bình thường các tệp trong thư mục có tên là "tĩnh". Tôi cũng đang ở trên Windows.
Đây là cách tôi phục vụ các tập tin thông thường phương tiện truyền thông trong 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,})
)
Và settings.py của tôi (chỉ những phần quan trọng):
import project_path
MEDIA_ROOT = project_path.MEDIA.replace('\\','/')
MEDIA_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/media/'
TEMPLATE_DIRS = (
project_path.TEMPLATE.replace('\\','/'),
)
Và project_path.py tôi:
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")
Bất kỳ gợi ý nào?
hoặc có thể ít nhất là hãy chia sẻ làm thế nào để bạn phục vụ các tập tin media admin của bạn (mà không thay đổi bất kỳ tập tin từ máy chủ web, nhưng chỉ thông qua mã nguồn django)
Cảm ơn trước :)
Bạn đã bao giờ giải quyết vấn đề này chưa? Tôi đang có một trải nghiệm tương tự khi làm việc trên Mac với Django 1.1, phục vụ các tệp phương tiện bình thường nhưng không dành cho quản trị viên ... – Danielb
Lý do cài đặt url không hoạt động, là vì 'django/core/management/commands/runserver. py' cùng với 'django.core.servers.basehttp' thiết lập trình xử lý WSGI cho' ADMIN_MEDIA_PREFIX'. Nó xử lý yêu cầu trước khi URLconf được nhấn – vdboor