2012-06-20 29 views
6

Sự cố này dành riêng cho trang web sản xuất sử dụng Máy nén Django. Tôi muốn điều này hoạt động khi COMPRESS_OFFLINE = True để tôi có thể nén trước tất cả các tệp css của trang web của tôi trước khi đẩy vào sản xuất.Máy nén Django Ngoại tuyến Thừa kế

Tôi muốn, trong vòng base.html, làm tương đương với điều này:

{% compress %} 
    {% block css %} 
    {% endblock %} 
{% endcompress %} 

sao cho tất cả các khối css của tôi trong các tập tin mà mở rộng cơ sở được nén. Điều này chủ yếu là do đó tôi không phải thêm các thẻ {% compress%} vào tất cả các mẫu con của tôi.

Có một số vấn đề tương tự trên Stack Overflow, nhưng tôi đã không tìm thấy giải pháp tốt để thực hiện việc này khi nén ngoại tuyến (tức là với lệnh quản lý nén của Django Compressor). Các thẻ nén xung quanh hoạt động tốt khi COMPRESS_OFFLINE = False. Có ai đó đã tìm cách để làm cho công việc này ngoại tuyến không?

Tôi liệt kê một vài chủ đề tương tự dường như liên quan đến các giải pháp không ngoại tuyến. Các liên kết trong các chủ đề thứ hai chỉ ra rằng đã có vấn đề trong quá khứ với thừa kế khi làm việc với Django Compressor ẩn nhưng có lẽ họ đã được giải quyết:

Django-compressor and template inheritance

Does django-compressor work with template inheritance?

Trả lời

0

Bạn phải làm sử dụng nén ẩn cho rằng kỹ thuật để làm việc, nhưng miễn là bạn có bộ nhớ đệm thiết lập đúng cách, django-máy nén sẽ không tái nén trên mọi yêu cầu trừ khi các nguồn lực đã được thay đổi.

Tôi đã sử dụng kỹ thuật này để cho phép người dùng sử dụng lesscss để mở rộng chủ đề trang web và sử dụng mixin của chúng tôi ... Thật đáng kinh ngạc khi làm việc nhưng (theo kinh nghiệm của tôi) nó hoàn toàn ổn định khi được định cấu hình chính xác và không giới thiệu độ trễ yêu cầu đáng kể khi nó được nén lần đầu tiên.

Bạn có thể thiết lập một dịch vụ như pingdom, blamestella, hoặc new relic để đạt các trang khác nhau để đảm bảo tài sản nén luôn trong bộ nhớ cache (họ theo dõi cho thời gian hoạt động, nhưng công việc này là tốt)

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