2010-02-20 20 views
9

Django làm gì với MEDIA_ROOT chính xác? Tôi chưa bao giờ hiểu nó. Kể từ khi Django chính nó không phục vụ phương tiện truyền thông tĩnh, và bạn phải thiết lập apache hoặc một cái gì đó tương tự cho nó, tại sao nó quan tâm trong đó thư mục nó ngồi?Django làm gì với `MEDIA_ROOT`?

Trả lời

9

Bạn không phải là người duy nhất tự hỏi; hãy xem Django ticket #10650. Dựa trên ý kiến ​​của các nhà phát triển Django đó, tôi nghĩ rằng đây khá nhiều tổng kết những gì MEDIA_ROOT được sử dụng cho:

Thật không may, Django cũng có lỗi vì đã quá mơ hồ trong tài liệu của mình về những gì MEDIA_ROOT và MEDIA_URL là được dùng cho. Tìm kiếm thông qua mã Django xác nhận rằng MEDIA_ROOT & MEDIA_URL được sử dụng để tải lên tệp và MEDIA_URL được cung cấp dưới dạng tiện ích cho mẫu qua bộ xử lý ngữ cảnh mặc định (có sẵn khi sử dụng RequestContext ??).

+1

Đó là công việc nghiên cứu tuyệt vời - peppergrower. – Jibin

2

Dường như nó được sử dụng bởi một số lớp ở Django làm mặc định - ví dụ: FileSystemStorage sử dụng nó làm nơi lưu trữ tệp mặc định.

2

Khi bạn tạo mô hình với thuộc tính ImageField hoặc FileField, bạn nên chuyển đối số upload_to. Đó là một đường dẫn tương đối sẽ được nối vào đường dẫn MEDIA_ROOT của bạn và sẽ lưu và truy xuất các tệp đó.

Các vấn đề liên quan