Tengo una aplicación Rails que estoy intentando probar en el entorno de producción. Ejecuté lo RAILS_ENV=production rake assets:precompile
que generó todos mis activos en / public / assets. El problema es que cuando inicio mi aplicación con RAILS_ENV=production rails s thin
:
ActionController::RoutingError (No route matches [GET] "/assets/application-eff78fd67423795a7be3aa21512f0bd2.css"):
Este archivo existe sin embargo en /public/assets/application-eff78fd67423795a7be3aa21512f0bd2.css
.
¿Alguna idea de por qué estoy recibiendo esto RoutingError
?
fuente
thin
mi máquina de desarrollo. Estaba compilando los activos peroapplication.css
estaba vacío y el registro del servidor dio un error del OP.config.serve_static_files
.config.serve_static_assets
está en desuso y se eliminará en Rails 5.Además de lo que Ryan dijo anteriormente, la guía de canalización de activos de Rails describe cómo configurar Apache o nginx para servir los activos estáticos para usted.
http://guides.rubyonrails.org/asset_pipeline.html
Realmente debería configurar nginx o Apache para servir activos estáticos, ya que están mucho mejor optimizados para esta tarea que mestizo / delgado / unicornio.
fuente
Acabo de resolver el mismo problema. En mi caso, la respuesta de Ryan no fue útil. Bratsche señaló las Guías de Rails, desafortunadamente esto tampoco funcionó para mí. Sin embargo, el recurso fue útil. Entonces tomé la configuración de Nginx desde allí y agregué la directiva raíz , apuntando al directorio público. Sin esto no funciona.
Reinicie nginx, y eso es todo.
fuente
De hecho, no necesitaba modificar ninguna configuración predeterminada. Simplemente vuelve a compilar el archivo de activos .
eliminar público / bienes
compilación de activos
fuente
Rails 4.2 ha agregado / cambiado esta línea en sus archivos config / entornos / staging.rb y production.rb:
Si RAILS_SERVE_STATIC_FILES no está configurado y usted es un activo de servicio de su servidor Rails (como con Unicorn), entonces el valor predeterminado será "falso" y se producirá el RoutingError.
Esta es una solución fácil:
fuente
En los rieles 5, la
config.serve_static_files
opción ha cambiado, por lo que ahora debe tenerpara servir activos localmente.
fuente
intente debajo del código:
config / ambientes / production.rb
luego ejecute el comando:
luego empuje todos los archivos de compilación y el archivo de manifiesto al servidor.
fuente
Uso mina + puma + nginx para implementar mi aplicación Rails 5, obtuve
verifique config / entornos / production.rb
NGINX ya maneja esto , configúrelo correctamente
Las cosas funcionarán bien.
fuente
Si alguien llega aquí con el mismo error en el entorno de prueba que yo, esto es lo que me ayudó:
luego:
para encontrar el
spring server
proceso y su PID y luego matarlo a través de:fuente