2011-02-16 42 views
53

Tôi đang chuyển sang Django 1.3 và tìm cách tách phương tiện và tệp tĩnh này một chút khó hiểu. Sau đây là cách mặc định settings.py trông giống như:Sự khác biệt giữa các tệp tĩnh và tệp phương tiện trong Django là gì?

# Absolute filesystem path to the directory that will hold user-uploaded files. 
# Example: "/home/media/media.lawrence.com/media/" 
MEDIA_ROOT = '' 

# URL that handles the media served from MEDIA_ROOT. Make sure to use a 
# trailing slash if there is a path component (optional in other cases). 
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/" 
MEDIA_URL = '' 

# Absolute path to the directory that holds static files. 
# Example: "/home/media/media.lawrence.com/static/" 
STATIC_ROOT = '' 

# URL that handles the static files served from STATIC_ROOT. 
# Example: "http://media.lawrence.com/static/" 
STATIC_URL = '/static/' 

tôi nên đặt gì vào MEDIA_ROOTSTATIC_ROOT? Có nên là những thư mục riêng biệt không? Sự khác biệt là gì?

+0

xem bài đăng này https://groups.google.com/forum/#!topic/django-users/tSb4EC0G040 – laike9m

Trả lời

49

Tệp tĩnh có nghĩa là cho javascript/hình ảnh, v.v. nhưng tệp phương tiện là nội dung do người dùng tải lên.

+0

điều gì về ứng dụng vẫn lưu trữ nội dung của họ vào phương tiện. ví dụ contrib.admin. tôi có nên liên kết symlink với thư mục phương tiện dự án hoặc thư mục tĩnh của mình ngay bây giờ không? bởi vì theo bạn đang trả lời, những tệp đó giờ đây thuộc về tĩnh. – darren

+0

@mongoose_za - ứng dụng quản trị hiện có thư mục tĩnh và không còn sử dụng phương tiện. Bạn không còn cần phải liên kết tệp phương tiện của quản trị viên nếu bạn sử dụng ứng dụng tĩnh. –

29

Như Uku Loskit đã nói, các tệp tĩnh dành cho những thứ như tệp css, tệp javascript, hình ảnh, tệp phương tiện của bạn thường là tệp người dùng hoặc quản trị viên có thể tải lên.

Thông thường bạn sẽ muốn MEDIA_ROOTSTATIC_ROOT làm các thư mục riêng biệt. Hãy nhớ rằng STATIC_ROOT là nơi lệnh quản lý collectstatic sẽ đặt tất cả các tệp tĩnh mà nó tìm thấy. Trong quá trình sản xuất, sau đó bạn định cấu hình máy chủ web của mình để phân phối các tệp ra khỏi STATIC_ROOT khi đưa ra yêu cầu bắt đầu bằng STATIC_URL. Nếu bạn đang sử dụng devserver Django để phát triển, nó sẽ tự động phục vụ các tệp tĩnh.

Ứng dụng tĩnh do đó sẽ tháo gỡ phương tiện đã tải lên của người dùng khỏi phương tiện ứng dụng, do đó việc triển khai, sao lưu và kiểm soát phiên bản dễ dàng hơn. Trước ứng dụng tĩnh, các nhà phát triển thường có các tệp phương tiện được trộn lẫn với các tài sản ứng dụng tĩnh.

1,3 tài liệu cho các tệp tĩnh đã được cải thiện liên tục; để biết thêm chi tiết, hãy xem how-to.

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