2012-04-28 6 views
0

Любая идея, почему активы Rails: precompile попытаются скомпилировать частичный _assounts.css.sass sass, если он не указан в моем списке прекомпиляции?активы: precompile пытается скомпилировать частичный sass, если он не должен

application.rb

config.assets.enabled = true 
config.assets.initialize_on_precompile = true 

config.assets.precompile += ['*.js', 'controllers/*.js', 'controllers/admin/*.js', 'controllers/shared/*.js', '*.coffee', 'application.css.sass', '*.css', '*.png', '*.jpg', '*.scss.erb'] 

_accounts.css.sass включается только путем application.css.sass, который имеет:

@import "account" 

Ошибка:

Undefined mixin 'column'. (in _account.css.sass) 

. ... потому что он использует компас, но application.css.sass импортирует компас перед импортом _accounts.css.sass, поэтому частичное не должно необходимо импортировать компас.

ответ

2

Имена файлов/шаблоны в списке вещей для прекомпиляции не относятся к именам файлов, которые должны быть предварительно скомпилированы. Вместо этого они ссылаются на результаты предварительной компиляции, т. Е. Запрос «* .css», который должен быть предварительно скомпилирован, означает прекомпиляцию всего, что, если скомпилированный результат приведет к .css-файлу. В частности, файл .css.sass, такой как ваш файл _account, будет предварительно скомпилирован.

+0

Хорошо, но я не хочу, чтобы мой файл application.css.sass был скомпилирован, но не другие? Какая же там подходящая настройка? Благодаря! – 99miles

+0

Затем просто попросите скомпилировать application.css (который по умолчанию входит в список) и любые другие CSS-файлы верхнего уровня (например, у вас могут быть admin.css и mobile.css) –