Rails 3.1 / Compass / sprockets - создание css дважды - PullRequest
4 голосов
/ 22 июня 2011

Используя github-версии веток компаса rails31 и sass-rails:

gem "sass-rails", :git => "https://github.com/rails/sass-rails.git"
gem "compass", :git => "https://github.com/chriseppstein/compass.git", :branch => "rails31"

Я создал часть (_base.css.scss), которая содержит импорт для blueprint / reset и blueprint-typography.,У меня также есть файл screen.css.scss, который включает мою базовую частичку.

Когда rails компилирует это в application.css, я дважды вижу мой сброс и типографику css.

stylesheets /application.css.scss

/*
 * This is a manifest file that'll automatically include all the stylesheets available in this directory
 * and any sub-directories. 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 .
*/

таблицы стилей / partials / _base.css.scss

@import "blueprint/reset";
@import "blueprint/typography";

@include blueprint-typography;

таблицы стилей / partials / screen.css.scss

@import "partials/_base";

#container { @include container; }

Я не очень понимаю, что здесь происходит, и какова правильная конфигурация, чтобы начать использовать компас с рельсами 3.1

Большое спасибо за ваше руководство!

Ответы [ 3 ]

2 голосов
/ 01 августа 2011

Если вы используете

require_tree .

в вашем манифесте application.css он будет автоматически включать все файлы в каталоге, содержащем этот файл.

Попробуйте использовать следующий метод в файле application.css вместо @import:

/*
  *= require blueprint/src/reset
  *= require blueprint/src/typography 
  *= require_self
  *= require_tree . 
*/

Кроме того, вы можете разместить план вендора / ресурсов / таблиц стилей вместо приложения / поставщика (который должен содержать код, специфичный для приложения)

1 голос
/ 23 июня 2011

Вот мое решение, возможно, оно не так, как должно быть сделано (я действительно не знаю, как использовать звездочки), но, похоже, оно работает ... Пожалуйста, дайте мне знать, если есть лучший способ достичьthis.

application.css.scss

/*
 * This is a manifest file that'll automatically include all the stylesheets available in this directory
 * and any sub-directories. 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 .
*/

@import "blueprint/reset";
@import "blueprint/typography";

@include blueprint-typography;

screen.css.scss

@import "blueprint";
@import "partials/_base";

#container { @include container; }

_base.css.scss

# Columns or colors variables goes here...
0 голосов
/ 15 мая 2015

Это может быть не ваш случай, но одна из причин, почему CSS загружается дважды, заключается в том, что вы добавили расширение файла (например, .css) в свой оператор @import.

...