【问题标题】:Django and compass with multiple apps带有多个应用程序的 Django 和指南针
【发布时间】:2012-06-14 21:32:58
【问题描述】:

我想使用Compass 来简化在我的 Django 应用中编写 CSS 的任务。但是不知道怎么配置。

我看到 django-compressor 支持 SASS,但为了使用 Compass,我需要将 _*.scss 文件转储到我的工作区(Django 1.4),因为这是 django-compressor 运行 scss 命令时的工作目录。

Eric Meyer's approach 听起来很明智(在开发过程中将 .scss 文件编译为 .css 并提交给 SCM),但我如何使用 SASS/Compass 工具在多个应用程序中编译 .scss 并不明显(可重复使用和不可重用)在 Django 工作区中。

我将每个应用的静态样式表文件存储在<app>/static/<app>/css/

我遇到的问题是这样的:

  1. @import 不能跨应用运行
  2. _*.scss 文件放入工作区是不可接受的
  3. 在工作区中运行 compass watch 失败:

    无需编译。如果您正在尝试开始一个新项目,则您已经省略了目录参数。

  4. 使用@include background(...) 失败:

    语法错误:未定义操作:“-compass-list-size(compact(#cccccc, false, false, false, false, false, false, false, false, false)) gt 1"

【问题讨论】:

  • 是 _*.scss 文件的一部分吗?如果是这样,为什么不应该将它们包含在工作区中?

标签: django sass compass-sass django-compressor


【解决方案1】:

我发现从本质上将 Django 与 Sass 分开要容易得多。您仍然可以同时使用它们,但可能需要另一个终端窗口左右。最后,无论如何,这一切都是为了提供已编译的资产。

我通常使用根目录中的 /src/ 目录来配置我的项目,这是我放置 Sass 文件的位置。我还在该根目录中设置了一个 Compass 项目,编译后的样式表进入 /static/css/。

显然,如果项目中有很多应用程序,这可能会出现问题,因为您想在根 /static/ 中创建应用程序目录或在 / 中创建另一个 Compass 项目

通常,我使用 Grunt 编译我的 Sass/Compass 文件,所以它有点复杂,但很容易重新创建。

Frank Wiles 的帖子 Ultimate Front End Development Setup 非常接近我设置项目的方式,尽管我跳过使用 django-compressor 因为我觉得不需要添加中间件,而且显然我使用 Grunt 而不是 Gulp。

【讨论】:

    【解决方案2】:

    也许您可以使用Fabric 之类的工具(甚至是 bash 脚本)来处理文件的编译和放置。至于compass watch 命令,您可能需要手动为.scss.css 文件的位置提供额外的参数,以使其成功watch(通过运行compass help watch 查看帮助文档)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-18
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多