2010-06-17 13 views
24

Mam następujący przypadek: chcę używać nieskompresowanych plików js/css podczas programowania (na przykład do debugowania js), ale na produkcji chcę automatycznie przełączać się na minifikowane wersje tych plików .Django: automatyczne usuwanie plików css/js przed wydaniem

niektóre prostym rozwiązaniem jest umieszczenie w szablonie:

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

ale to wymaga manully pod warunkiem, że taki plik istnieje i zrobić minifaction manullay po zmianie oryginalnego pliku.

Jak to osiągnąć w swoich projektach? Czy jest na to jakieś narzędzie?

+0

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

Odpowiedz

17

Czy próbowałeś http://code.google.com/p/django-compress/?

Zobacz http://djangopackages.com/grids/g/asset-managers/ na dość pełną listę dostępnych dla zarządzających aktywami Django ...

Jeśli już korzysta już Django kompres, należy spojrzeć na modernizację do Django rurociąg, który jest dobrze utrzymany widelec z wieloma nowymi funkcjami. Zachęcam każdego, kto jest przy użyciu Django kompres, aby przełączyć się do rurociągu Django zamiast: * django-pipeline documentation

+0

Idealny! Wielkie dzięki! – dzida

+11

django-compress został zastąpiony przez [django-pipeline] (http://django-pipeline.readthedocs.org/en/latest/index.html) zgodnie z ich [stroną] (http://code.google.com/p/django-compress /) –

+0

Ta aplikacja już nie działa :-( –

8

Używam webassets i do tej pory jestem bardzo zadowolony. Naprawdę podoba mi się to, że nadal możesz definiować swoje pliki CSS i JS w szablonach zamiast w konfiguracji projektu.

dokumentację można znaleźć na stronie: http://elsdoerfer.name/docs/webassets/

+0

django-assets ma nową nazwę: [webassets] (https://github.com/miracle2k/webassets) –

+0

ah, I ' ve zaktualizował odpowiedź odpowiednio – heyman

+1

Witaj hejanie :) długo nie widzę. Czy nadal używasz webassets? A jakie jest twoje podejście do webassets vs django-pipeline? Trudno zdecydować. Mogę docenić możliwość wprowadzania szablonów, ale django-pipeline wydaje się lepiej radzić sobie z nie-kodującymi zasobami, takimi jak obrazy i pliki flash. Czy się mylę? Czy webassety ładnie obsługują te typy plików? –

0

pisałem this Makefile do minify i złączyć moje JS i pliki CSS. To zależy od JAR YUI Compressor. Jednak po aktualizacji pliku nadal trzeba uruchomić make. Mimo to możesz uruchomić go, gdy serwer uruchomi się i/lub przeładuje, lub skonfiguruj commit-hook na SCM.

Oczywiście nadal potrzebujesz {% if not debug %}, ale to niewielka cena do zapłaty IMO.

Pokazuje proste użytkowanie:

$ 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

Właśnie wydała projekt open-source, które ogląda katalogi dla zmian i auto-minifies JS, auto-kompiluje Sass/SCSS, prowadzi operacje Wiersz poleceń, itp

Sprawdź to na http://devWatchr.com/

To uruchamia się przy użyciu python i pyinotify w systemie podczas programowania.

Powiązane problemy