Используйте Rails 3.1 пути активов в частичном SCSS - PullRequest
3 голосов
/ 15 сентября 2011

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

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 и миксинов, которые являются общими для всех партиалов.

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

Любая помощь будет принята с благодарностью!

1 Ответ

10 голосов
/ 16 сентября 2011

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

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