2010-05-07 25 views
30

Estoy utilizando los últimos rieles 3 beta. La aplicación funciona bien en modo de desarrollo, pero cuando inicio el servidor en modo de producción a través del rails server -e production, parece que no se puede encontrar la carpeta public. Recibo mensajes de error como:Servidor no se puede encontrar la carpeta pública en los rieles 3 entorno de producción

ActionController::RoutingError (No route matches "/javascripts/jquery.js"): 

y Similares mensajes para todo lo que debería estar en la carpeta public. He intentado esto con mestrel y webrick. Agradecería cualquier ayuda.

Respuesta

60

edición de config/ambientes/production.rb y el establecimiento de esta línea:

config.serve_static_assets = true

+0

Esto realmente me ayudó. Pero si lo configura en falso, ¿servirá el servidor HTTP (por ejemplo, Apache o algo así) estos archivos? ¿Cómo sabe apache qué URLs entregar al ruby ​​runtime, y cuál puede servir? Im un roob noob – Zasz

+0

impresionante - ¡Gracias! – house9

+1

@Zasz Consulte la configuración de nginx [aquí] (http://www.talkunafraid.co.uk/2010/09/getting-set-up-with-ruby-and-rails/). Primero encontrará si el archivo existe y enviará la solicitud a los rieles solo si no lo hace. – ZelluX

1

nginx, unicornio y Apache va a hacer esto de forma automática. asegúrese de cambiar esto a falso si está implementando usando estos servidores.

+4

usando unicorn_rails (entorno de intranet) tuvo que establecer config.serve_static_assets = true – house9

+0

de acuerdo con house9. unicornio necesita que se establezca en verdadero. – HungryCoder

Cuestiones relacionadas