Используете рельсы 3.1 пути активами в СКС частичная


У меня есть следующая настройка:

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 частичное, когда я пытаюсь то же самое свойство background-image просто опущено из скомпилированного файла. Похоже, помощники по активам SCSS недоступны внутри партиалов?

Кто-нибудь получил это на работу, я пропал что-то очевидное? Или просто невозможно использовать помощников активов в партиалах? Если это так, то это очень серьезная проблема, так как вся моя структура приложения зависит от переменных SCSS и миксинов, которые являются общими для всех партиалов.

Я знаю, что переменные и микшины не являются общими в манифесте sprockets, поэтому, если партиалы не могут получить доступ к помощникам активов, то я рассматриваю необходимость объединения всего в один файл scss, что в значительной степени противоречит цели как Sass, так и Шестерни.

Любая помощь была бы очень признательна!

1 3

1 ответ:

Странно, но это должно сработать.. Всего несколько идей:

  1. используете ли вы современные самоцветы sass-рельсы и звездочки?
  2. попробуйте переименовать .CSS.СКСС к.scss
  3. попробуйте заменить image-path('background.png') на asset-url('background.png', image) или image-url('background.png')
  4. Попробуйте удалить require_self из приложения.CSS.scss
  5. Попробуйте удалить все директивы из приложения.CSS.scss и импортировать эти файлы с помощью @import