2010-06-17 89 views
24

我有以下情況:我想在開發過程中使用未壓縮的js/css文件(例如調試js),但是在生產中我想自動切換到該文件的縮小版本。Django:在發佈前自動縮小css/js文件

一些簡單的解決辦法是把你的模板:

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

但這需要manully提供這樣的文件存在,原來的文件更改後做minifaction manullay。

您如何在您的項目中完成這項工作?有沒有這個工具?

+0

https://www.djangopackages.com/grids/g/asset-managers/ – 2013-11-20 05:53:13

回答

17

你試過http://code.google.com/p/django-compress/

http://djangopackages.com/grids/g/asset-managers/可用資產經理的Django的一個相當完整的列表...

如果你已經正在使用Django的壓縮,你應該看看升級到Django的管道,這是一個維護良好的叉子,具有許多新功能。我鼓勵大家誰在使用Django的壓縮切換到Django的管道改爲:* django-pipeline documentation

+0

完美!非常感謝! – dzida 2010-06-17 14:32:03

+11

django-compress已被[django-pipeline](http://django-pipeline.readthedocs.org/en/latest/index.html)取代[http://code.google.com/p/django-compress /) – 2012-01-25 20:46:49

+0

此應用不再維護:-( – 2013-03-29 15:53:06

8

我一直在使用webassets,到目前爲止,我很滿意。我真正喜歡的是,你仍然可以在你的模板中定義你的CSS和JS文件,而不是在項目配置中。

文檔,可以發現:http://elsdoerfer.name/docs/webassets/

+0

django-assets有一個新名字:[webassets](https://github.com/miracle2k/webassets) – 2011-07-15 07:46:05

+0

啊,我已經更新了相應的答案 – heyman 2011-07-21 10:44:39

+1

你好heyman :)好久不見。 你還在使用webassets嗎?你對webassets和django-pipeline有什麼看法?難以決定。我可以欣賞模板內聯功能,但Django管道似乎有更好的處理非代碼資產,如圖像和Flash文件。我錯了嗎? webassets是否優雅地處理這些文件類型? – 2013-07-09 13:38:01

0

我寫this Makefile來縮小和拼接我的JS和CSS文件。這取決於YUI Compressor JAR。 更新文件後,仍然需要運行make。不過,您可以在服務器啓動和/或重新加載時運行它,或者在SCM上設置提交掛鉤。

當然,您仍然需要{% if not debug %},但支付IMO費用很小。

顯示的簡單的用法:

$ 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

剛剛發佈了手表的變化和自動minifies JS目錄的開源項目,自動編譯SASS/SCSS,運行命令行操作等

瞧瞧吧http://devWatchr.com/

它在開發過程中在系統上使用pythonpyinotify運行。