【问题标题】:Asset pipeline sass import not working资产管道 sass 导入不起作用
【发布时间】:2013-06-21 09:44:11
【问题描述】:

我正在使用 sass 导入来处理我们的 rails 3.2 应用程序的大部分样式。我的 application.css.scss 文件如下所示:

应用程序.css

/*
 *= require_self
 *= require_tree ./vendor
 *= require admin
 */

admin.css.scss

// Reset
@import "global/reset";

// General Variables
@import "admin/general/_variables";

// Main Elements
@import "admin/general/_typography";

// Layout
@import "global/_layout";
@import "admin/general/_gridset";

// Modules
@import "admin/modules/_table";
@import "admin/modules/_forms";
@import "admin/modules/_buttons";

// Styles
@import "admin/_style-clean";
@import "admin/_style-images";

// Features
@import "admin/features/features";

错误消息:Sass::SyntaxError - 未定义变量:“$body-bg”。 (在 /var/www/apps/dev_wbs/releases/20130624191222/app/assets/stylesheets/admin/_style-clean.css.scss)

_variables.css.scss(导入)包含$body-bg,在_style-clean.css.scss中被引用

我最初在 sass 语法中有这个,但是每次我们推送到开发服务器时,我们都会收到 Sass::SyntaxError - Undefined variable: "$body-bg" 的错误。变量在变量文件中声明,错误来自_style-clean scss文件。我已将此变量放入 style-clean 文件中,但随后出现另一个变量错误,但它指的是排版文件中的一个变量,位于 style-clean 之上,这让我以某种方式认为资产正在预先编译然后添加。

我想重新使用 sass 语法,但是 scss 和 sass 都会抛出变量错误。

目前所有单个文件的格式为:_variables.css.scss。

任何帮助将不胜感激!

【问题讨论】:

    标签: css ruby-on-rails sass asset-pipeline


    【解决方案1】:

    资产管道依靠application.css 告诉它要包含哪些文件。将其更改为 SASS 可能无法正常工作。

    另外,你的 application.css 需要告诉 Ruby 在哪里寻找文件:

    /*
     * This is a manifest file that'll be compiled into application.css, which will include     all the files
     * listed below.
     *
     * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
     * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
     *
     * You're free to add application-wide styles to this file and they'll appear at the top of the
     * compiled file, but it's generally better to create a new file per style scope.
     *
     *= require_self
     *= require_tree .
     */
    

    如果您将粘贴在问题中的代码放入新文件(如 global.css.scss)中并在 /app/assets/stylesheets/ 中重新创建 application.css,则您也应该使用上述代码和 SASS 样式进行比赛.

    【讨论】:

    • 哎呀,我把它从我的剪辑顶部留下了。我有 require self,但没有树,因为我不希望 application.css 预编译所有资产,我宁愿指定顺序,以及在一个文件中使用所有伟大的 sass 功能而不是在全部。
    • 在这种情况下,最好将它们分开。随着更多开发人员加入项目,它使文件更容易编辑,更难搞砸。
    • 我已经将它添加到一个单独的文件中,所以现在我有一个普通的 application.css.scss 文件,它有: /* *= require_self *= require ./admin */ 但我是推送到 dev 时仍然出现变量错误(抱歉,忘记了我不能在其中嵌套代码)
    • application.css 很重要。默认情况下,Rails 不会将 .css.scss 视为清单文件。
    • 请用新代码和完整的错误消息更新您的问题。如果您可以包含/突出显示错误相关的行,那将很有帮助。
    猜你喜欢
    • 2011-12-02
    • 1970-01-01
    • 2011-12-19
    • 2023-04-08
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    相关资源
    最近更新 更多