2012-12-27 18 views
5

Ho seguito le configurazioni in production.rbcompressione attivi in ​​Ruby on Rails 3

# 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 

Ma quando il rubino sulle rotaie applicazione sul server di produzione vengo seguente errore:

Error compiling CSS asset 

LoadError: cannot load such file -- yui-compressor 

on commentando linea LoadError: cannot load such file -- yui-compressor, tutto va bene.
Tutto ciò di cui ho bisogno è un compressore che gzip comprima gli asset prima di inviarli per migliorare le prestazioni!
quindi, qual è il problema qui o c'è qualche altra alternativa?



Aggiornamento:
anche javascript compressione non funziona, come plug-in per Firefox che mostra YSlow anche javascript deve essere compresso.

risposta

3

Ho trovato che la compressione deve essere abilitata sul server web per avere effetto.
Tutto ciò che serve è quello di aggiungere seguente:

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

in <VirtualHost *:80></VirtualHost> direttiva per Apache (passeggeri Phusion) per il mio caso.

7

Hai incluso la gemma yui-compressor nel tuo Gemfile? In caso contrario, includilo, esegui "bundle install" e quindi Rails dovrebbe essere in grado di trovarlo.

+0

Sì, ho incluso gem di yui-compressor in Gemfile e 'esegui bundle install'. L'irb mostra anche lo stesso errore. – usercr