2010-06-17 3 views
24

Ich habe folgenden Fall: Ich möchte unkomprimierte js/CSS-Dateien während der Entwicklung verwenden (um js zum Beispiel zu debuggen), aber auf Produktion möchte ich automatisch zu verkleinerten Versionen dieser Dateien wechseln .Django: automatische Css/JS-Dateien vor der Freigabe

einige einfache Lösung ist in der Vorlage zu setzen:

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

aber dies erfordert manully vorausgesetzt, solche Datei vorhanden und minifaction manullay nach Originaldatei ändern zu tun.

Wie erreichen Sie dies in Ihren Projekten? Gibt es dafür ein Werkzeug?

+0

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

Antwort

17

Haben Sie versucht http://code.google.com/p/django-compress/?

Siehe http://djangopackages.com/grids/g/asset-managers/ für eine ziemlich vollständige Liste der verfügbaren Asset-Manager für Django ...

Wenn Sie bereits schon django-Kompresse verwenden, sollten Sie einen Blick auf Modernisierung müssen django-Pipeline, die ist eine gut gepflegte Gabel mit vielen neuen Features. Ich ermutige alle zu, die django-Kompresse zu wechseln verwendet django-Pipeline statt: * django-pipeline documentation

+0

Perfekt! Danke vielmals! – dzida

+11

django-compress wurde von [django-pipeline] (http://django-pipeline.readthedocs.org/en/latest/index.html) gemäß ihrer [Website] (http://code.google.com.) Ersetzt/p/django-compress /) –

+0

Diese App nicht mehr gepflegt :-( –

8

Ich habe webassets benutzen und so weit ich bin sehr zufrieden. Was ich wirklich daran mag, ist, dass Sie Ihre CSS- und JS-Dateien immer noch in Ihren Templates anstatt in der Projektkonfiguration definieren können.

Dokumentation finden Sie unter: http://elsdoerfer.name/docs/webassets/

+0

django-assets hat einen neuen Namen: [webassets] (https://github.com/miracle2k/webassets) –

+0

ah, ich ' habe die antwort entsprechend aktualisiert – heyman

+1

Hallo heyman :) lange nicht gesehen. Verwenden Sie immer noch Webassets? Und was ist Ihre Meinung zu Webassets vs Django-Pipeline? Schwierig entscheiden. Ich kann die Template-Inlining-Fähigkeit zu schätzen wissen, aber Django-Pipeline scheint eine bessere Handhabung von Nicht-Code-Assets wie Bildern und Flash-Dateien zu haben. Täusche ich mich? Behandelt webassets diese Dateitypen ordnungsgemäß? –

0

ich this Makefile schrieb meine JS und CSS-Dateien minify und verketten. Es hängt von der YUI Compressor JAR ab. Nach dem Aktualisieren einer Datei müssen Sie immer noch make ausführen. Trotzdem können Sie es ausführen, wenn der Server gestartet und/oder neu geladen wird, oder einen Commit-Hook auf Ihrem SCM einrichten.

Natürlich brauchen Sie immer noch die {% if not debug %}, aber es ist ein kleiner Preis, IMO zu bezahlen.

Zeigen die einfache Nutzung:

$ 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. 
-2

freigegeben einfach ein Open-Source-Projekt, das Verzeichnis für Änderungen und Auto-minifies JS Uhren, Auto-kompiliert SASS/SCSS läuft Operationen Befehlszeile usw.

Check it out bei http://devWatchr.com/

Es Läuft mit python und pyinotify auf Ihrem System während der Entwicklung.

Verwandte Themen