У меня есть приложение с тремя разными темами CSS, и каждая из этих тем имеет около дюжины цветовых схем. В разработке все работает нормально, но конвейер активов вызывает у меня некоторые странные проблемы.
По сути, у меня есть несколько таких файлов
/themes
/cool-theme
_theme.scss
/color-schemes
red.scss
Идея состоит в том, что я предварительно компилирую все файлы * .scss, кроме частичных файлов (начинающихся с подчеркивания), поскольку они включены в SASS. Итак, я использую этот код:
stylesheets_directory = "#{Rails.root}/app/assets/stylesheets"
config.assets.precompile += Dir.glob("#{stylesheets_directory}/**/*.scss").
map{|f| f[stylesheets_directory.size+1..-1]}.
select do |file|
if config.assets.precompile.include?(file)
puts "Already have #{file}"
false
elsif File.basename(file)[0...1] == "_"
puts "Partial detected #{file}"
false
else
puts "Including #{file}"
true
end
end
Код работает нормально и показывает результат, который я ожидаю во время прекомпиляции assets:. Исключает все, что должно, и включает все, что должно.
Проблема в том, что каталог / public / assets никогда не содержит файлов css для чего-либо, кроме application.css. Отсутствуют red.css, blue.css и т. Д.
Что я упускаю из виду?