rails precompiling failed asset_path ruby-on-rails ruby-on-rails-3.1 precompiled

ruby on rails - precompiling - CSS precompilado no encontrado en el modo de producción de Rails 3.1



ruby precompile assets (3)

Cuando inicio rieles en modo de producción, precompila todos los activos pero no puede servir el activo application.css. Busqué en public/assets y existe la aplicación precompilada .css.

Sin embargo, obtengo un 404 cada vez que intento acceder a él desde la página.

Estas son las instrucciones que utilizo para iniciar el servidor, si eso puede ayudar.

RAILS_ENV=production bundle exec rake assets:clean RAILS_ENV=production bundle exec rake assets:precompile rails -e production


¿Podría por favor confirmar que tiene

<%= stylesheet_link_tag "application" %>

en el segmento principal en el diseño de su aplicación en lugar de algo como:

<link href="/assets/application.css" media="screen" rel="stylesheet" type="text/css" />

Esto asegura que se incluirá la aplicación precompilada-xxx.css.


Entonces, resulta que Rails no es responsable de servir los activos estáticos que precompila. Debe configurar el servidor web que usa (es decir, nginx) para servir esos activos estáticos en lugar de los rieles. Me gustaría que esto fuera mucho más claro en los documentos.


Si desea que Rails sirva los activos estáticos, agregue la siguiente línea a su production.rb:

config.serve_static_assets = true

Entiendo que es mejor permitir que Apache o nginx los sirvan, pero esto funciona si está utilizando un servidor independiente de rieles (o al menos funciona con thin)