我们选择避免自动运行 Sass/Compass 编译,而是在开发阶段简单地使用 "compass --watch" 命令,并将 Sass 和生成的 CSS 同时提交到代码库中。然后在你的 Django 项目中不需要任何特殊的机器来处理 CSS 文件,只需像平常一样处理即可。这对我们有几个优点: 从我们的部署和生产服务器基础设施中删除了整个额外的组件:无需在生产服务器上安装完整的 Ruby 栈、Sass、Compass 或其他所需的 gem。使生产服务器变得更简单是非常好的事情。同时,也可以在纯 Python 主机上进行部署。 没有神秘的细微差异导致开发者之间或开发和生产之间存在显示不一致的问题,因为某个 Compass 插件 gem 版本等细节方面的微小差异。每个人都看到相同的 CSS,因此开发者之间 Compass 环境的差异会很快被发现,因为它们会立即显示为已生成的 CSS 的提交差异。 当然,缺点是将生成的代码提交到代码库中,这通常是不被看好的。不过,我们还没有因此遇到任何实际问题。没有人会尝试直接编辑生成的 CSS;我们都知道我们在使用 Compass。对于我们来说,优点绝对大于缺点——我们从来没有丝毫的想法要转向像 django-css 这样的集成方法。
你最好使用django-css,它是django-compressor的一个分支,也可以编译SASS的CSS。一旦你将其插入,就可以像往常一样使用compass、susy和blueprint,并且每当django检测到源文件的更新版本时,它们都会被编译。编辑:如果你在纯Python主机(如ep.io)上部署,你需要研究如何轻松构建cleverCSS(纯Python SASS和SCSS编译器)。编辑2:这些信息已经过时了。现在最好的选择是django-compressor,因为它具有预处理功能,并且还可以帮助你打包文件。 ;)