2011-02-08 13 views
16

Cuando ejecuto mi aplicación localmente en test/dev, mis puntos de vista salen bien y todo está feliz. Cuando trato de navegar a esos mismos archivos erb corriendo en mi servidor de producción servidor remoto/local recibo errores como el siguiente:Error de enrutamiento de archivos estáticos de producción de rieles

ActionController::RoutingError (No route matches "/stylesheets/scaffold.css") 

que he visto aquí en preguntas similares SO pero ninguno ha sido capaz de resolver mi problema. Lo más parecido que he encontrado a una respuesta es la primera respuesta aquí: Rails 404 error for Stylesheet or JavaScript files

Según tengo entendido, lo mejor sería configurar mi servidor web para que sirva archivos estáticos. ¿Cómo hago esto localmente/en Heroku?

actualización

De acuerdo con la sugerencia de que raidfive cambió config.serve_static_assets de falso a verdadero y que esto esté arreglado mi problema. Sin embargo, veo que dice en production.rb que Apache o nginx ya deberían estar sirviendo activos estáticos. ¿Es menos bueno/profesional para servir activos estáticos de esta manera y, de ser así, cómo podría lograr los resultados deseados si estoy usando Heroku?

Actualización 2

Al parecer Heroku does this automatically, tuve una coma adicional que estaba causando el daño. Pude buscar en los registros de Heroku extendidos usando el following tip para rastrear el problema. ¡Gracias!

+0

¿Dónde estaba la coma? –

Respuesta

33

¿Está utilizando Rails 3? Por defecto, Rails 3/webrick no sirve archivos estáticos en modo de producción. Puede habilitarlo fácilmente estableciendo

config.serve_static_assets en en su archivo production.rb.

+0

Ah, ja, pensé que podría ser algo así. Sin embargo, noté en el comentario sobre la configuración que dice que apache o nginx ya deberían hacer esto. ¿Hay algo que deba configurar en mi servidor? – keybored

+0

Ignora eso, aparentemente es algo que Heroku hace automáticamente. Mi problema era la colocación errónea de una coma que, por alguna razón, mi servidor local estaba ignorando. ¡Gracias por la ayuda! – keybored

+0

Ah, no hay problema. Sí, creo que Heroku tiene una página de doc sobre cómo manejan los activos estáticos si quieres leer en ella. – raidfive

0

En Rails5, se debe comentar

"config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?" 

en config/enviroment/production.rb

Cuestiones relacionadas