5

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 圧縮するコンプレッサーが必要です!
それで、ここで何が問題なのですか、それとも他の選択肢はありますか?



更新:
Firefox の yslow プラグインも javascript を表示しているため、javascript 圧縮が機能していません。圧縮する必要があります。

4

2 に答える 2

8

Gemfile にyui-compressor gemを含めましたか? そうでない場合は、それを含めて「bundle install」を実行すると、Rails がそれを見つけることができるはずです。

于 2012-12-27T11:54:08.103 に答える
3

効果を得るには、Webサーバーで圧縮を有効にする必要があることがわかりました。
必要なのは、次を追加することだけです。

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

<VirtualHost *:80></VirtualHost>私の場合、Apache(Phusion Passenger)の指令で。

于 2012-12-28T07:16:50.617 に答える