Compressing assets in Ruby on Rails 3

删除回忆录丶 提交于 2019-12-06 02:29:57

问题


I have following configurations in 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

But when the ruby on rails application on production server I get following error:

Error compiling CSS asset

LoadError: cannot load such file -- yui-compressor

on commenting line LoadError: cannot load such file -- yui-compressor,everything goes well.
All I need a compressor that gzip compress assets before sending to improve performance!
so,what is problem here or is there any other alternative?



Update:
Also javascript compression is not working,as yslow plugin for firefox also showing javascripts needs to be compressed.


回答1:


Have you included the yui-compressor gem in your Gemfile? If not, then include it, run 'bundle install', and then Rails should be able to find it.




回答2:


I found that the compression must be enabled on webserver to have effect.
All that is needed is to add following:

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

in <VirtualHost *:80></VirtualHost> directive for Apache(phusion passenger) for my case.



来源:https://stackoverflow.com/questions/14054158/compressing-assets-in-ruby-on-rails-3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!