2012-02-26 36 views
6

Tôi đang sử dụng amazon s3 để lưu trữ tất cả các tệp tĩnh của mình (qua django-storages) và tốn nhiều tiền hơn để thực hiện PUT so với GET. Khi tôi chạy manage.py collectstatic, Django thực hiện PUT cho mọi tệp tĩnh đơn lẻ mà tôi có. Có cách nào để kiểm tra trước để xem tập tin đã thay đổi chưa, và nếu nó không làm phiền với PUT thì sao?Django: Chỉ thu thập các tệp tĩnh đã thay đổi

Trả lời

12

Dường như tất cả các bạn cần làm là cài đặt python-dateutil:

pip install python-dateutil==1.2 

Without này django-kho sẽ không kiểm tra ngày vì mã này:

def modified_time(self, name): 
    try: 
    from dateutil import parser, tz 
    except ImportError: 
    raise NotImplementedError() 

Các modified_time ném một lỗi nhưng django chỉ tiếp tục đi bởi vì nó cho phép phương thức modified_time của một lớp con lưu trữ được unimplemented. Tôi hiểu tại sao họ làm điều đó, bởi vì chức năng này là không cần thiết. Điều đó nói rằng, nó sẽ được tốt đẹp để có một số loại cảnh báo nói rằng tại sao tất cả mọi thứ đang được tải lên.

Lưu ý rằng tôi đang sử dụng phiên bản python-dateutil 1.2. Nếu bạn sử dụng phiên bản mới nhất của dateutil, bạn sẽ gặp lỗi với django-storages (đó là django-storages phiên bản 1.1.4).

+0

Tôi đã cài đặt python-dateutil == 2.1 với django-storages == 1.1.8 và nó cũng hoạt động. Cảm ơn! –

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