我有以下情况:我想在开发期间使用未压缩的 js/css 文件(例如调试 js),但在生产中我想自动切换到该文件的缩小版本。
一些简单的解决方案是放入您的模板:
<script src="some_js.{% if not debug %}min.{% endif %}js"....
但这需要手动提供此类文件,并在原始文件更改后进行缩小手动操作。
你如何在你的项目中做到这一点?有什么工具可以做到这一点吗?
你试过django-compress吗?
有关Django 可用资产管理器的完整列表,请参阅http ://djangopackages.com/grids/g/asset-managers/...
如果你已经在使用 django-compress,你应该看看升级到 django-pipeline,这是一个维护良好的分支,有很多新功能。我鼓励所有使用 django-compress 的人改用 django-pipeline:* django-pipeline 文档
Django-compress 不再维护。请改用https://github.com/cyberdelia/django-pipeline。
我一直在使用网络资产,到目前为止我非常满意。我真正喜欢它的是,您仍然可以在模板中定义 CSS 和 JS 文件,而不是在项目配置中。
可以在以下位置找到文档: http: //elsdoerfer.name/docs/webassets/
截至 2016 年底,这些答案大多已过时。
在此处查看一些选项: https ://gitlab.com/rosarior/awesome-django#asset-management
目前,django-compressor是一个不错的选择,但根据您的需要,还有其他选择。我相信 webpack 这些天也变得流行起来。
我编写了这个 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.
刚刚发布了一个开源项目,它可以监视目录的变化并自动缩小 JS、自动编译 SASS/SCSS、运行命令行操作等。
它在开发期间使用python
和pyinotify
在您的系统上运行。