压缩资产Ruby on Rails的3(Compressing assets in Ruby on

2019-08-04 19:41发布

我有以下的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的生产服务器上的Rails应用程序,我得到以下错误:

Error compiling CSS asset

LoadError: cannot load such file -- yui-compressor

在注释行LoadError: cannot load such file -- yui-compressor ,一切顺利。
所有我需要gzip压缩发送来提高性能之前压缩资产压缩机!
所以,这里有什么问题或有任何其他的选择吗?



更新:
也JavaScript的压缩不工作时,作为用于Firefox也表示Javascript角YSlow的插件需要被压缩。

Answer 1:

你有没有包括锐压缩机在你的Gemfile宝石? 如果没有,那么包含它,运行“捆绑安装”,然后Rails的应该能找到它。



Answer 2:

我发现, 压缩必须在Web服务器中启用具有效力。
所有需要的是增加以下内容:

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

<VirtualHost *:80></VirtualHost>指令为Apache(PHUSION乘客),用于我的情况。



文章来源: Compressing assets in Ruby on Rails 3