2012-01-09 12 views
9

L'ho fatto su un'app di Rails 3.1 sorella utilizzando la produzione sul mio server web Leopard. Quindi non mi aspettavo di perdere questa distribuzione. Ho ottenuto Passenger per riconoscere l'app, ma ottengo un errore "[GET /] miss" in apache. Guardando in giro immagino di poterlo fare funzionare in webrick per vedere se riesco a isolare il problema.produzione di rails "css non precompilato"

fascio beni rastrello exec: RAILS_ENV precompilare = produzione

Ma quando carico fino localhost: 3000 vengo "progetto/screen.css non è precompilato"

mi metto a confronto le differenze tra la sorella app e non le trovi. Ecco alcuni codice chiave condividono:

<%= stylesheet_link_tag "application" %> 
    <%= javascript_include_tag "application" %> #in app/views/layouts/application.html.erb 

config/environments/production.rb 
config.consider_all_requests_local  = false 
    config.action_controller.perform_caching = true 
config.serve_static_assets = false 
config.assets.precompile += %w(search.js) 
    config.assets.precompile += %w(blueprint/screen.css blueprint/print.css) 
    config.assets.precompile += %w(*.css *.js) 

Questo accade in 3.1.0 e 3.1.3 e posso confermare la precompilazione accade sulle directory Blueprint. Cosa sto trascurando ?, sam

+0

mi sono imbattuto in un "Beccato" dove ho avuto una virgola separa i miei oggetti in '% w()' e quelle virgole a far parte degli elementi di matrice invece di separarle. Per esempio. '% w (blueprint/screen.css, blueprint/print.css) # => ['blueprint/screen.css,', 'blueprint/print.css']' –

risposta

12

Hai provato separatamente in questo modo?

config.assets.precompile += %w(blueprint/screen.css) 
config.assets.precompile += %w(blueprint/print.css) 

quindi eseguire:

bundle exec rake assets:precompile RAILS_ENV=production 

Questo dovrebbe riparato.

+0

Dovrebbe avere. Il mio era così: config.assets.precompile + =% w (blueprint/screen.css blueprint/print.css) – sam452

+1

Solo curioso, perché accodare l'array di precompilazione in righe separate risolvere il suo problema? –

9

È possibile impostare assets.compile su true nell'ambiente di produzione per eseguire il fallback sulla pipeline delle risorse quando il file viene perso.

# config/environments/production.rb 
# ... 
# Fallback to assets pipeline if a precompiled asset is missed 
    config.assets.compile = true 
+7

Attenzione, questo può uccidere le prestazioni. – orourkedd

+0

Questo corregge sicuramente il _symptom_ ma nasconde il _problem_, che _can_ deve essere corretto e _should_ essere corretto. –

Problemi correlati