27

我有以下情况:我想在开发期间使用未压缩的 js/css 文件(例如调试 js),但在生产中我想自动切换到该文件的缩小版本。

一些简单的解决方案是放入您的模板:

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

但这需要手动提供此类文件,并在原始文件更改后进行缩小手动操作。

你如何在你的项目中做到这一点?有什么工具可以做到这一点吗?

4

6 回答 6

20

你试过django-compress吗?

有关Django 可用资产管理器的完整列表,请参阅http ://djangopackages.com/grids/g/asset-managers/...

如果你已经在使用 django-compress,你应该看看升级到 django-pipeline,这是一个维护良好的分支,有很多新功能。我鼓励所有使用 django-compress 的人改用 django-pipeline:* django-pipeline 文档

于 2010-06-17T14:18:29.817 回答
19

Django-compress 不再维护。请改用https://github.com/cyberdelia/django-pipeline

于 2011-12-07T23:25:05.770 回答
8

我一直在使用网络资产,到目前为止我非常满意。我真正喜欢它的是,您仍然可以在模板中定义 CSS 和 JS 文件,而不是在项目配置中。

可以在以下位置找到文档: http: //elsdoerfer.name/docs/webassets/

于 2010-06-18T10:56:32.787 回答
4

截至 2016 年底,这些答案大多已过时。

在此处查看一些选项: https ://gitlab.com/rosarior/awesome-django#asset-management

目前,django-compressor是一个不错的选择,但根据您的需要,还有其他选择。我相信 webpack 这些天也变得流行起来。

于 2016-12-22T20:30:31.287 回答
0

我编写了这个 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.
于 2010-07-31T20:31:05.517 回答
-1

刚刚发布了一个开源项目,它可以监视目录的变化并自动缩小 JS、自动编译 SASS/SCSS、运行命令行操作等。

在http://devWatchr.com/上查看

它在开发期间使用pythonpyinotify在您的系统上运行。

于 2013-07-26T20:58:17.870 回答