Сжатие ресурсов в Ruby on Rails 3

У меня есть следующие конфигурации в production.rb

 # Disable Rails's static asset server (Apache or nginx will already do this)
  config.serve_static_assets = false

  # Compress JavaScripts and CSS
  config.assets.compress = true

  # Choose the compressors to use
  config.assets.js_compressor  = :uglifier
  config.assets.css_compressor = :yui

  # Don't fallback to assets pipeline if a precompiled asset is missed
  config.assets.compile = true

  # Generate digests for assets URLs.
  config.assets.digest = true

Но когда приложение ruby ​​on rails на рабочем сервере я получаю следующую ошибку:

Error compiling CSS asset

LoadError: cannot load such file -- yui-compressor

в строке комментария LoadError: cannot load such file -- yui-compressor все идет хорошо.
Все, что мне нужно, это компрессор, который gzip сжимает ресурсы перед отправкой для повышения производительности!
Итак, в чем здесь проблема или есть какая-то другая альтернатива?



Обновление:
Также не работает сжатие javascript, так как подключаемый модуль yslow для firefox также показывает, что javascripts необходимо сжимать.


person Chirag Rupani    schedule 27.12.2012    source источник


Ответы (2)


Включили ли вы гем yui-compressor в свой Gemfile? Если нет, то включите его, запустите 'bundle install', и тогда Rails сможет его найти.

person Kyri Elia    schedule 27.12.2012
comment
Да, я включил драгоценный камень yui-compressor в Gemfile и run bundle install. irb также показывает ту же ошибку. - person Chirag Rupani; 27.12.2012

Я обнаружил, что сжатие должно быть включено на веб-сервере, чтобы иметь эффект.
Все, что нужно, это добавить следующее:

AddOutputFilterByType DEFLATE text/html text/css application/x-javascript application/javascript

в директиве <VirtualHost *:80></VirtualHost> для Apache (пассажир phusion) для моего случая.

person Chirag Rupani    schedule 28.12.2012