2010-06-17 30 views
24

Tôi có trường hợp sau: Tôi muốn sử dụng các tệp js/css không nén trong quá trình phát triển (ví dụ để gỡ lỗi js) nhưng khi sản xuất, tôi muốn tự động chuyển sang phiên bản rút gọn của các tệp đó .Django: tự động rút gọn các tệp css/js trước khi phát hành

một số giải pháp đơn giản là để đưa vào mẫu của bạn:

<script src="some_js.{% if not debug %}min.{% endif %}js".... 

nhưng điều này đòi hỏi manully việc quy định rằng tập tin như vậy tồn tại và làm minifaction manullay sau khi thay đổi file gốc.

Làm cách nào để bạn thực hiện việc này trong các dự án của mình? Có công cụ nào cho việc này không?

+0

https://www.djangopackages.com/grids/g/asset-managers/ –

Trả lời

17

Bạn đã thử http://code.google.com/p/django-compress/?

Xem http://djangopackages.com/grids/g/asset-managers/ cho một danh sách khá đầy đủ các nhà quản lý tài sản có sẵn cho Django ...

Nếu bạn đã đang sử dụng django-nén, bạn nên có một cái nhìn tại nâng cấp lên django-đường ống, đó là một ngã ba được duy trì tốt, với rất nhiều tính năng mới. Tôi khuyến khích mọi người sử dụng django-compress để chuyển sang django-pipeline thay vì: * django-pipeline documentation

+0

Hoàn hảo! Cảm ơn rất nhiều! – dzida

+11

django-compress đã được superceded bởi [django-pipeline] (http://django-pipeline.readthedocs.org/en/latest/index.html) theo [site] của họ (http://code.google.com/p/django-compress /) –

+0

Ứng dụng này không còn được duy trì :-( –

8

Tôi đã sử dụng webassets và cho đến nay tôi rất hài lòng. Những gì tôi thực sự thích về nó, là bạn vẫn có thể định nghĩa các tệp CSS và JS của bạn bên trong các mẫu của bạn, thay vì trong cấu hình dự án.

Tài liệu có thể được tìm thấy tại địa chỉ: http://elsdoerfer.name/docs/webassets/

+0

tài sản django có tên mới: [webassets] (https://github.com/miracle2k/webassets) –

+0

ah, tôi ' đã cập nhật câu trả lời cho phù hợp – heyman

+1

Xin chào người đàn ông :) thời gian dài không thấy. Bạn vẫn đang sử dụng webassets? Và những gì là của bạn đi trên webassets vs django-đường ống? Có một thời gian khó khăn quyết định. Tôi có thể đánh giá cao khả năng inlining mẫu, nhưng django-đường ống dường như có xử lý tốt hơn các tài sản không mã như hình ảnh và các tập tin flash. Tôi có nhầm không? Webassets có xử lý các loại tệp này một cách duyên dáng không? –

0

tôi đã viết this Makefile để rút gọn và nối JS của tôi và các file CSS. Nó phụ thuộc vào JAR YUI Compressor. Sau khi cập nhật tệp, bạn vẫn phải chạy make. Tuy nhiên, bạn có thể làm cho nó chạy khi máy chủ khởi động và/hoặc tải lại, hoặc thiết lập một commit-hook trên SCM của bạn.

Tất nhiên bạn vẫn cần số {% if not debug %}, nhưng đó là một mức giá nhỏ để thanh toán IMO.

Hiển thị việc sử dụng đơn giản:

$ make 
[css] static/css/first.css 
[css] static/css/second.css 
[css] static/css/third.css 
[css] static/css/and_so_on.css 
[tag] @import url("static/css/all.css"); 
[js] static/js/first.js 
[js] static/js/second.js 
[js] static/js/third.js 
[js] static/js/and_so_on.js 
[tag] <script type="text/javascript" src="static/js/all.js"></script> 
Done. 
17

Django-nén không còn được duy trì. Thay vào đó, hãy thử dùng https://github.com/cyberdelia/django-pipeline.

+2

Tài khoản github của họ hiển thị công việc gần đây. Có một tuyên bố hay gì đó? –

-2

Chỉ cần phát hành một dự án mã nguồn mở mà xem thư mục cho những thay đổi và tính năng tự động minifies JS, tự động biên dịch Sass/SCSS, chạy hoạt động dòng lệnh vv

Check it out tại http://devWatchr.com/

Nó chạy bằng cách sử dụng pythonpyinotify trên hệ thống của bạn trong quá trình phát triển.

3

Tính đến cuối năm 2016, những câu trả lời này phần lớn đã lỗi thời.

Kiểm tra ở đây cho một vài lựa chọn: https://gitlab.com/rosarior/awesome-django#asset-management

Tại thời điểm này, django-compressor là một lựa chọn tốt, nhưng có những lựa chọn thay thế tùy thuộc vào những gì bạn muốn làm. Tôi tin rằng webpack đang trở nên phổ biến trong những ngày này.

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