Với django-compress
, bạn đang xử lý CSS và JS dưới dạng tệp động - điều đó là tốt. Tuy nhiên, các tập tin khác là tĩnh - và Django không thực sự muốn phục vụ chúng. Chúng nên được phục vụ trực tiếp bởi Apache hoặc máy chủ web khác.
Với Apache, bạn muốn đặt một cái gì đó giống như
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"
</FilesMatch>
trong .htaccess
hoặc cấu hình Apache toàn cầu.
Cập nhật: Trả lời nhận xét của bạn - Rất tiếc, tôi không hiểu sắc thái của câu hỏi của bạn. Không có nhiều việc bạn có thể làm để tránh sử dụng URL khác để chỉ ra cho khách hàng rằng tệp (ví dụ: hình ảnh) đã thay đổi. Điều này được khuyến nghị bằng ví dụ: Apache và YAHOO!
Triển khai IMO này không quá khó. Nó có hai phần:
- Sử dụng thẻ (đây là useful snippet) để tạo URL được phiên bản cho tệp phương tiện sẽ xuất hiện trong HTML của bạn. URL được phiên bản có thể là URL cơ sở với phiên bản được chèn, ví dụ:
/media/3/header.png
nơi tệp thực sự giữ nguyên là /media/header.png
trên máy chủ.
- Sử dụng công cụ như
mod_rewrite
để chuyển đổi URL đến thành giá trị chuẩn, tức là yêu cầu /media/3/header.png
được chuyển đổi thành /media/header.png
. This article mô tả tính năng chi tiết hơn.
Nguồn
2009-09-11 15:24:22
Tôi biết cách đặt tương lai xa hết hạn trên hình ảnh, nhưng tôi đã tự hỏi liệu có cách nào tốt hơn để xử lý khi tôi chỉnh sửa hình ảnh hay không. Giả sử tôi có header.png với thời gian hết hạn trong tương lai. Sau đó tôi chỉnh sửa nó trong photoshop. Tôi sẽ phải đặt tên nó là header1.png và sau đó thay đổi bất kỳ tham chiếu nào trong đoạn mã thành header1.png. Không lý tưởng cho tôi. –