问题
I would like to bundle up css and javascript files. I also want to send far-future expire headers to clients, so I need file versioning.
A quick search across the Internet has shown there are several asset managers developed for Django. Here is a list of those that I could reach:
- django-compress
- django-assets
- django-assetpackager
- django-media-bundler
- django-mediacat
- django-site-assets
- django-static-management
- django-compressor
They seem to perform more or less the same job. django-compress, django-compressor and django-site-assets seem to be especially promising at the first glance. I will appreciate if someone provides feedback on any of them that will help me choose between them.
回答1:
As you have already noticed, they all do the same thing (more or less). I decided to go ahead with django_compressor.
Also, I prefer to set expire headers or apply on-the-fly compression at the web server level. IMHO these operations should not be performed by the application itself, because sometimes it can lead to some issues, for instance setting Cache-Control or expiration headers on error pages etc. The mod_expires module is very easy to configure according to your needs. For on-the-fly compression using the DEFLATE output filter, I have used this mod_deflate configuration as is.
回答2:
New projects have been created since this question was asked.
You might want to take a look at django-pipeline, it's pretty nifty.
回答3:
I've been using django-compress and I'm happy with it, especially because I can specify the back-end compressor (YUI works best with my JS for example).
I will probably consider switching to django_compressor in the future, but it's too low priority atm.
I would also point out that django-media-bundler has one feature the others don't... automatic building of image sprites. I haven't used it live, so I'm not sure how well it is implemented but that's pretty neat. You can use it just for the sprites and leave css/js for one of the other compressors.
回答4:
FWIW since djangopluggables.com doesn't exist anymore and nobody has mentioned it here yet: The most recent comparison is on djangopackages.com, where django_compressor is the most used one ATM. Haven't tried it with 1.4 though as Jay Taylor warned in his comment.
回答5:
Among the contenders I have chosen django-compressor because it is incredibly simple to use. Just put one or two tags (typical scenario: one for css and another for js) in the template and for most cases you are done without modifying anything; you don't even have to declare or modify settings, its default settings are good.
来源:https://stackoverflow.com/questions/1684062/asset-managers-for-django-choose-which-one