2015-07-24 2 views
1

У меня есть веб-приложение, которое использует стойку.Добавить CSS minifier для звездочек

Код:

set :assets, (Sprockets::Environment.new { |env| 
    env.js_compressor = Uglifier.new({ 
     :output => { 
     :preserve_line => true, 
     :bracketize => true, 
     :beautify => true, 
     :indent_level => 4, 
     :semicolons => true, 
     }, 
     :mangle => false 
    }) 

    env.append_path(APP_ROOT + "/app/assets/images") 
    env.append_path(APP_ROOT + "/app/assets/javascripts") 
    env.append_path(APP_ROOT + "/app/assets/stylesheets") 
}) 

Теперь я хочу, чтобы добавить CSS Minifier к нему.

  1. Может кто-нибудь объяснить, почему только в javascript-файлы принимаются в компрессор JS выше?
  2. Могу ли я добавить что-то вроде env.css_compressor = YUI :: CssCompressor.new() после JS_compressor получить мое требование сделать

UPDATE: Ну второй на самом деле работал. Но я понятия не имею, как это сработало :)

ответ

0

Вы не установили переменную Sprockets :: Environment.css_compressor, поэтому для работы с активами text/css не было компрессора.

puts Sprockets::Environment.methods.inspect 
#=> [...#css_compressor, #css_compressor=, #js_compressor, #js_compressor=,...] 

Чтобы ответить на ваш вопрос о том, как активы будут загружены, да по умолчанию, чтобы указать на один путь нагрузки и вы также можете манипулировать, что включать другие. https://github.com/sstephenson/sprockets

Путь загрузка представляет собой упорядоченный список каталогов, которые Звездочка использует для поиска активов. Чтобы добавить каталог в путь загрузки среды, используйте методы append_path и prepend_path.

+0

Спасибо. Секция Sprockets :: Environment.new() в моем коде включает js_compressor, а также добавляет пути (в том числе JS/CSS и изображения). JS_compressor знает, какие файлы должны работать. Я использовал что-то вроде ниже, и это сработало. Это правильный способ сделать это. 'set: assets, (Sprockets :: Environment.new {| env | env.js_compressor = Uglifier.new ({ : mangle => true }) env.css_compressor = YUI :: CssCompressor.new() env. append_path (APP_ROOT + "/ app/assets/javascripts") env.append_path (APP_ROOT + "/ app/assets/stylesheets") }) ' – Ish

+0

Да, звездочки используют путь загрузки для обработки активов, которые необходимо сжать. – wurde

Смежные вопросы