Bối cảnh:Django Apps nên gói phương tiện tĩnh như thế nào?
Tôi bắt đầu sử dụng Django lần đầu tiên, cũng là bước đột phá đầu tiên của tôi vào phát triển web. Tôi chỉ bị mắc kẹt trên toàn bộ "phục vụ phương tiện truyền thông tĩnh" vấn đề. Sau khi dành một chút thời gian xem tất cả các tài liệu và câu hỏi StackOverflow, tôi nghĩ rằng tôi hiểu cách hoạt động của nó (ví dụ: MEDIA_ROOT, MEDIA_URL, đang cập nhật tệp url, v.v.).
My Câu hỏi:
Ok, vì vậy đây là phần tôi không chắc chắn về. Ứng dụng Django được cho là "có thể cắm được", tức là tôi có thể di chuyển một ứng dụng từ dự án này sang dự án khác. Vì vậy, làm thế nào các ứng dụng này nên gói phương tiện truyền thông tĩnh?
Ví dụ: giả sử tôi có ứng dụng "foo", trong đó có các mẫu tải một số tệp css/hình ảnh. Tôi phải đặt những tệp này ở đâu, để chúng tự động được phân phối khi tôi đưa ứng dụng vào?
Giải pháp duy nhất tôi thấy, là cài đặt một ứng dụng phải bao gồm bước bổ sung sao chép phương tiện tĩnh của nó tới một số nơi trên máy chủ của riêng bạn phục vụ phương tiện đó.
Đây có phải là cách được chấp nhận để làm điều đó không? Nó bao gồm một bước bổ sung, nhưng có lẽ đó là tiêu chuẩn khi giao dịch với web-dev (tôi mới nên tôi không thực sự biết).
Ngoài ra, nếu đây là cách, có cách nào tiêu chuẩn để thu thập tất cả các phương tiện truyền thông tĩnh của tôi để làm cho nó dễ dàng để biết những gì tôi cần phải phục vụ? (Tức là, nó có tiêu chuẩn để có một thư mục có tên là "media" hay cái gì đó bên trong ứng dụng không?).
Cảm ơn,
Đây là cách tiếp cận chính xác, như của Django 1.3. –
Lưu ý rằng https://github.com/jaddison/django-cachebuster/ cung cấp thẻ {% static%} rất hữu ích cho Django 1.3 – Eli