2012-01-09 14 views
9

He hecho esto en una aplicación hermana de Rails 3.1 usando producción en mi servidor web Leopard. Así que no esperaba ser tan perdido al implementar esta aplicación. Le pedí a Passenger que reconociera la aplicación, pero recibí el error "[GET /] miss" en apache. Al mirar a mi alrededor me imagino que puedo hacer que esto se ejecute en webrick para ver si puedo aislar el problema.carriles producción 'css no está precompilado'

de haces activos rastrillo Ejecutivo: RAILS_ENV precompilación = producción

Pero cuando me carga hasta localhost: 3000 me sale "modelo/screen.css no es precompila"

comienzo a la comparación de las diferencias entre la hermana aplicaciones y no puede encontrarlas. Éstos son algunos código de la llave que comparten:

<%= 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) 

Esto sucede en 3.1.0 y 3.1.3 y puedo confirmar la compilación previa sucede en los directorios Blueprint. ¿Qué estoy pasando por alto ?, sam

+0

me encontré con un "Gotcha" donde tuve una coma que separa mis artículos en '% w()' y los comas a formar parte de los elementos de matriz en lugar de separarlos. P.ej. '% w (blueprint/screen.css, blueprint/print.css) # => ['blueprint/screen.css,', 'blueprint/print.css']' –

Respuesta

12

¿Has probado por separado de esta manera?

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

continuación, ejecute:

bundle exec rake assets:precompile RAILS_ENV=production 

Esto debería arreglado.

+0

Debería haberlo hecho. El mío era así: config.assets.precompile + =% w (blueprint/screen.css blueprint/print.css) – sam452

+1

Simplemente curioso, ¿por qué agregar el arreglo de precompilación en líneas separadas solucionaba su problema? –

9

Puede establecer assets.compile en true en el entorno de producción para retroceder a la canalización de activos cuando se pierde el archivo.

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

Tenga cuidado, esto puede matar el rendimiento. – orourkedd

+0

Esto definitivamente corrige el _síntoma_ pero oculta el _problema_, que _puede ser reparado y _debería ser reparado. –

Cuestiones relacionadas