2011-10-12 10 views
18

Cuando inicio los raíles en modo de producción, precompila todos los activos pero no puede servir el recurso application.css. Miré en public/assets y existe la aplicación precompilada .css.CSS no compilado no se encuentra en el modo de producción Rails 3.1

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

Estas son las instrucciones que uso para iniciar el servidor, si eso puede ayudar en absoluto.

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

No uso Rails 3.1, pero no es la carpeta 'assets' en la raíz de su aplicación, no en la carpeta' public'? Perdóname si esto está mal. – bricker

+1

esto está mal, está en la carpeta 'public' –

Respuesta

34

Si desea rieles publique los elementos estáticos que tiene añadir la siguiente línea a su production.rb:

config.serve_static_assets = true 

entiendo que es mejor permitir que Apache o Nginx para servir a ellos, pero esto funciona si están utilizando un servidor independiente de rieles (o al menos funciona con thin)

0

Podría confirmar que usted tiene

<%= stylesheet_link_tag "application" %> 

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

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

Esto hace que el precompilado aplicación-xxx. CSS estará incluido.

+0

sí, tengo la etiqueta de la hoja de estilo –

+0

¿Dónde está ubicada la aplicación original.css? ¿Está en /app/assets/stylesheets/application.css? Además, ¿cómo se ve la fuente html en términos de la etiqueta de enlace de la hoja de estilo? ¿Hace referencia a application.css o a la aplicación precompilada-xxx.css? – emrass

+0

La aplicación original.css se encuentra en/app/assets/stylesheets /. La fuente html hace referencia a la aplicación precompilada-xxx.css –

3

Resulta que los rieles no son responsables de servir los activos estáticos que precompila. Debe configurar el servidor web que utiliza (es decir, nginx) para que le sirva esos recursos estáticos en lugar de los raíles. Ojalá esto fuera mucho más claro en los documentos.

+0

¿puede proporcionar un enlace sobre cómo configurar el servidor para la misma? –

Cuestiones relacionadas