2011-07-25 24 views
8

Tôi đã đọc điều gì đó về họ thông qua tài liệu chính thức và một số bài đăng, nhưng tôi vẫn còn bối rối. Theo như tôi có thể thấy, MEDIA_ROOT dành cho ảnh và tệp đã tải lên của người dùng và STATIC_ROOT cho js, ​​css, v.v. Đối với MEDIA_URL, là để truy xuất hình ảnh? Và STATIC_URL có liên kết js và css không?Định nghĩa tài liệu của MEDIA_ROOT, MEDIA_URL, STATIC_ROOT, STATIC_URL và ADMIN_MEDIA_PREFIX là gì?

Tôi sẽ đánh giá cao nó rất nhiều nếu các ví dụ được cung cấp cho mỗi.

+0

Bạn nên cung cấp tiêu đề tốt hơn :( –

Trả lời

11

MEDIA_ROOT và STATIC_ROOT là những thư mục địa phương các tệp đó nằm trong, ví dụ:

MEDIA_ROOT = '/home/CDBean/mydjangoproject/media/' # notice the trailing slash 
STATIC_ROOT = '/home/CDBean/mydjangoproject/static/' 

MEDIA_URL và STATIC_URL là các URL công khai thể truy cập những thư mục. Điều đó có nghĩa là khi bạn triển khai dự án Django của mình, bạn sẽ phải thông báo cho máy chủ web của mình để xuất bản các thư mục đó dưới các URL bạn chỉ định ở đây.

MEDIA_URL = 'http://media.example.com/' # trailing slashes here, too 
STATIC_URL = 'http://static.example.com/' 

Sau đó bạn có thể sử dụng các URL (giả sử bạn có django.core.context_processors.mediadjango.core.context_processors.static thêm vào TEMPLATE_CONTEXT_PROCESSORS tuple trong settings.py) trong các mẫu của bạn thông qua {{MEDIA_URL}} và {{STATIC_URL}}. Hai ví dụ:

<link href="{{STATIC_URL}}css/main.css" media="screen" rel="stylesheet" type="text/css" /> 
<img src="{{MEDIA_URL}}random.jpg"/> 

Bây giờ, khi nào nên sử dụng cái gì? Về cơ bản bạn nói đúng, nhưng tôi khuyên bạn nên đọc https://docs.djangoproject.com/en/dev/howto/static-files/.

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