3

我有以下设置:

app/assets/stylesheets/application.css.scss

/*
*= require_self
*= require fancybox
*/

/* COLORS.. */
/* MIXINS... */
/* FONT STACKS... */

/* IMPORTS */
@import "reset";
@import "supergrid";
@import "rails";
@import "app";
@import "forms";
@import "layout";

在我的各种部分中,我在资产路径方面遇到了真正的问题。当内部application.css.scss或清单加载的任何内容时,我可以使用:

.example { background-image: image-path("background.png"); }

但是,当我使用部分,例如我的_layout.css.scss部分时,当我尝试相同的事情时,背景图像属性会从编译文件中简单地省略。似乎 SCSS 资产助手在部分内部不可用?

有没有人让这个工作,我错过了一些明显的东西吗?还是根本不可能在部分中使用资产助手?如果是这样,这是一个主要的、主要的问题,因为我的整个应用程序结构依赖于在部分之间共享的 SCSS 变量和混合。

我知道变量和 mixin 不会在 sprockets 清单中共享,所以如果部分无法访问资产帮助程序,那么我正在考虑将所有内容连接到单个 scss 文件中,这几乎违背了 Sass 和 Sprockets 的目的。

任何帮助将不胜感激!

4

1 回答 1

10

奇怪,它应该工作..只有几个想法:

  1. 您是否在使用最新的 gems sass-rails 和 sprockets?
  2. 尝试将 .css.scss 重命名为 .scss
  3. 尝试替换image-path('background.png')asset-url('background.png', image)orimage-url('background.png')
  4. 尝试require_self从 application.css.scss中删除
  5. 尝试从 application.css.scss 中删除所有指令并使用 @import 导入这些文件
于 2011-09-16T09:39:30.450 回答