Bạn không phải sử dụng Django để phục vụ nội dung tĩnh trực tiếp. Chỉ cần yêu cầu 404 tuyến máy chủ cho thư mục hình ảnh của bạn đến chế độ xem Django, nơi chia tách tên tệp và tạo hình thu nhỏ thích hợp, trước khi chuyển hướng trở lại URL ban đầu (hy vọng sẽ không còn là 404).
Đối với đề xuất django-imagekit của câu trả lời khác, tôi không chắc nó làm bất cứ điều gì để cho phép bạn động tạo hình ảnh dựa trên URL, nhưng tôi chắc chắn khuyên bạn nên sử dụng nó cho tất cả các tính năng của nó.
Edit:
Đối với các cấu trúc URL thực tế, tôi cảm thấy một điển hình hơn /images/filename-120x45.jpg
sẽ cho phép bạn dễ dàng hơn lọc ra 404 yêu cầu mà không có gì để làm với thế hệ thumbnail động. Ví dụ: giả sử có rất nhiều lỗi 404 cho /images/original_size_image.jpg
. Bạn sẽ không muốn những người được chuyển đến Django, và bạn chỉ có thể phù hợp với tên tập tin của định dạng đó với regex. [chỉnh sửa cuối]
Bạn phải cẩn thận khi để bất kỳ ai biết tính năng này gửi spam ứng dụng Django của bạn. Họ có khả năng có thể giết nó với vô số kích thước hình ảnh và sự kết hợp tên tập tin trong tầm tay của họ. Bạn sẽ cần phải tìm cách đặt giới hạn trên cho các yêu cầu này, chẳng hạn như chuyển hướng quay lại 404 nếu thứ nguyên lớn hơn kích thước gốc hoặc thậm chí tìm ra cách yêu cầu nhiều thứ nguyên cho cùng một kích thước của cùng một hình ảnh. Có lẽ đây là những gì bạn đã nhận được khi đề cập đến "khóa" mặc dù.
Ngoài ra, tôi thấy bạn đã gắn thẻ Apache nhưng tôi thực sự muốn khuyên bạn nên phân phối nội dung tĩnh thông qua một cái gì đó như Nginx. Bạn có thể có thể phủ nhận các chi phí bổ sung của các yêu cầu hình ảnh động nếu bạn sử dụng một máy chủ tập tin tĩnh mà không phải là hoàn toàn crap lúc phục vụ các tập tin tĩnh.
Nếu bạn đang tự động tạo ra hình thu nhỏ, sau đó nó không thực sự tĩnh, phải không? –
Tôi nghĩ về nó như một hình thu nhỏ tĩnh được tải xuống. Khi nó được tạo ra, tôi muốn cùng một hiệu suất như thể nó là tĩnh. – Gattster