我有以下情况:我想在开发期间使用未压缩的js / css文件(例如调试js)但是在生产时我想自动切换到该文件的缩小版本。
一些简单的解决方案就是放入你的模板:
<script src="some_js.{% if not debug %}min.{% endif %}js"....
但这需要manully提供这样的文件存在并在原始文件更改后进行minifaction manullay。
您如何在项目中实现这一目标?有没有这方面的工具?
答案 0 :(得分:17)
您是否尝试过http://code.google.com/p/django-compress/?
有关Django的可用资产管理器的完整列表,请参阅http://djangopackages.com/grids/g/asset-managers/
如果您已经在使用django-compress,那么您应该看看升级到django-pipeline,这是一个维护良好的fork,具有许多新功能。我鼓励所有使用django-compress的人转而使用django-pipeline:* django-pipeline documentation
答案 1 :(得分:17)
不再维护Django-compress。请改为https://github.com/cyberdelia/django-pipeline。
答案 2 :(得分:8)
我一直在使用webassets,到目前为止我非常满意。我真正喜欢它的是,您仍然可以在模板中定义CSS和JS文件,而不是在项目配置中。
可在以下网址找到文档:http://elsdoerfer.name/docs/webassets/
答案 3 :(得分:3)
截至2016年底,这些答案大多已过时。
点击此处查看以下几个选项: https://gitlab.com/rosarior/awesome-django#asset-management
目前,django-compressor是一个不错的选择,但根据您的目的,还有其他选择。我相信webpack现在也越来越流行。
答案 4 :(得分:0)
我写了this Makefile来缩小和连接我的JS和CSS文件。这取决于YUI Compressor JAR。
更新文件后,您仍然必须运行make
。不过,您可以在服务器启动和/或重新加载时运行它,或者在SCM上设置commit-hook。
当然你还需要{% if not debug %}
,但支付国际海事组织的价格很低。
显示简单用法:
$ 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.
答案 5 :(得分:-2)
刚刚发布了一个开源项目,它监视目录的变化并自动缩小JS,自动编译SASS / SCSS,运行命令行操作等。
上查看在开发过程中,它会在您的系统上使用python
和pyinotify
运行。