如何在Django中使用Less CSS?

40 投票
2 回答
21546 浏览
提问于 2025-04-17 09:31

我正在使用Twitter Bootstrap和Django,并且通过一个pip的需求文件来管理我的依赖。

我有两个问题:

  1. 在开发的时候,我怎么能使用Less,这样每次我编辑Less文件时,它就能自动编译?
  2. 我怎么能创建一个构建脚本,把我的JS文件压缩合并,并从Less生成CSS,以便在部署的时候使用?

我写了一个自定义的构建脚本,它会创建一个虚拟环境,运行'pip install -r requirements.txt',然后执行Django的syncdb和migrate,接着就可以开始了。

把Less集成到这个过程中,最简单的方法是什么?

谢谢

2 个回答

15

这个选中的答案已经过时了:django-less 现在不再维护了(你可以在 它的pypi页面上看到这个信息),开发者建议使用 django-static-precompiler 作为替代。

45
  1. 安装 django-static-precompiler:

  2. 运行 pip install django-static-precompiler 来安装

  3. static_precompiler 加入到你的 INSTALLED_APPS 列表中

  4. 安装 lessc 可执行文件,可以通过你的包管理器来安装,或者运行 npm install lessnpm 是 Node 包管理器,如果其他方法都不行,可以用这个)

  5. 在模板中使用 less:

  6. 加载模板标签: {% load less %}

  7. 使用 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。

撰写回答