如何在Django中使用Less CSS?
我正在使用Twitter Bootstrap和Django,并且通过一个pip的需求文件来管理我的依赖。
我有两个问题:
- 在开发的时候,我怎么能使用Less,这样每次我编辑Less文件时,它就能自动编译?
- 我怎么能创建一个构建脚本,把我的JS文件压缩合并,并从Less生成CSS,以便在部署的时候使用?
我写了一个自定义的构建脚本,它会创建一个虚拟环境,运行'pip install -r requirements.txt',然后执行Django的syncdb和migrate,接着就可以开始了。
把Less集成到这个过程中,最简单的方法是什么?
谢谢
2 个回答
这个选中的答案已经过时了:django-less
现在不再维护了(你可以在 它的pypi页面上看到这个信息),开发者建议使用 django-static-precompiler 作为替代。
运行
pip install django-static-precompiler
来安装把
static_precompiler
加入到你的 INSTALLED_APPS 列表中安装 lessc 可执行文件,可以通过你的包管理器来安装,或者运行
npm install less
(npm 是 Node 包管理器,如果其他方法都不行,可以用这个)在模板中使用 less:
加载模板标签:
{% load less %}
使用 less 模板标签:
<link rel="stylesheet" href="{{ STATIC_URL}}{% less "path/to/styles.less" %}" />
注意,默认情况下,编译后的文件会保存在你的 STATIC_ROOT
目录下的 COMPILED
文件夹中(如果你的设置中没有 STATIC_ROOT
,则会保存在 MEDIA_ROOT
中)。你可以通过 STATIC_PRECOMPILER_OUTPUT_DIR
设置来更改这个文件夹的名称。想了解更多细节,可以查看 文档。
我个人没有尝试过,但我知道 django-compressor 也支持 less。