Подтвердить что ты не робот

Исключение файлов из активов: прекомпиляция в рельсах

Я использую код для записи меньше, который затем автоматически преобразуется в css.

Я не хочу, чтобы рельсы конвертировали мои меньше файлов в css, я скорее codekit делаю это.

если я предварительно скомпоную активы через

rake assets:precompile

Я получаю

rake aborted!
cannot load such file -- less

Как исключить определенные типы файлов/файлов из precompiling? (все мои файлы меньше в app/assets/stylesheets/less, а css (которые я хочу предварительно скомпилировать) находятся в app/assets/stylesheets/css

Обновление

удаление application.less решает это, но как я исключаю его из обработки в первую очередь?

4b9b3361

Ответ 1

Из руководства Asset Pipeline:

Совместимость по умолчанию для компиляции файлов включает application.js, application.css и все файлы, не относящиеся к JS/CSS (т.е.. coffee и .scss файлы не включаются автоматически при компиляции в JS/CSS):

[ Proc.new{ |path| !File.extname(path).in?(['.js', '.css']) }, /application.(css|js)$/ ]

Если у вас есть другие манифесты или отдельные таблицы стилей и JavaScript файлы для включения, вы можете добавить их в массив прекомпиляции:

config.assets.precompile += ['admin.js', 'admin.css', 'swfObject.js']

Итак, я бы сказал, что ваше решение состоит в том, чтобы изменить config.assets.precompile, чтобы исключить файлы .less. Может быть, что-то вроде этого (в подходящем файле среды, например config/environments/production.rb):

config.assets.precompile = [ Proc.new{ |path| !File.extname(path).in?(['.js', '.css', '.less']) }, /application.(css|js)$/ ]

Ответ 2

Если ваша структура каталогов находится в папке app/assets:

application.css
/css
 (generated by code kit)
 |...home.css
 |...index.css
/less
 |...home.less (assuming this is the extension)
 |...index.less

Затем в вашем файле application.css должна быть директива, в которой указано *= require_tree .. Это указывает, что rails сканирует все файлы/каталоги и пытается скомпилировать все файлы в один файл css.

Измените это на *= require_directory ./css и он загрузит файлы в каталоге css для компиляции.