2012-12-27 14 views
5

Mam następujących konfiguracjach w production.rbKompresja aktywa w 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 

ale gdy ruby ​​na szynach aplikacji na serwerze produkcyjnym mi się następujący błąd:

Error compiling CSS asset 

LoadError: cannot load such file -- yui-compressor 

na komentowanie linię LoadError: cannot load such file -- yui-compressor, wszystko idzie dobrze.
Wszystko, czego potrzebuję, kompresor, który gromadzi zasoby gzip przed wysłaniem, aby poprawić wydajność!
, więc, co tu jest problemem, czy jest jakaś inna alternatywa?



Aktualizacja:
również javascript kompresja nie działa, jak YSlow wtyczki do firefox pokazując również javascripts musi być skompresowane.

Odpowiedz

3

Znalazłem, że kompresja musi być włączona na serwerze internetowym, aby uzyskać efekt.
Wszystko, co potrzebne jest, aby dodać następujący:

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

w <VirtualHost *:80></VirtualHost> dyrektywy Apache (Phusion pasażera) do mojego przypadku.

7

Czy umieściłeś klejnot yui-compressor w swoim Gemfile? Jeśli nie, włącz go, uruchom "instalację pakietu", a następnie Railsy powinny być w stanie go znaleźć.

+0

Tak, dodałem klej Yui-kompresor w Gemfile i 'uruchom pakiet install'. Ib również pokazuje ten sam błąd. – usercr