Rails 3.1 Implementación a problemas de activos de producción (con Apache y Passenger)
Rails 3.1 ha cambiado la forma en que maneja la cartera de activos y está causando problemas cuando se implementa en producción.
Estoy usando Apache y Passenger, que parecen funcionar bien.
Mi producción está configurada de esta manera (por ahora).
# congif/environments/production.rb
config.cache_classes = false
config.consider_all_requests_local = true
config.action_controller.perform_caching = true
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true
config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
Ejecuto activos de rastrillo: precompilar en Ubuntu e iniciar el servidor. Y nada. Ninguna de mis imágenes se carga.
El legendario cuadro "No puedo encontrar una imagen en esta URL".
Ejecuto activos de rastrillo: precompilar en CentOS e iniciar el servidor. Y ... errores de permiso.
*Error Compiling CSS Asset*
Errno::EACCESS: Permission Denied - [app path]/tmp/cache/assets/E95
[path to RVM Ruby]/fileutils.rb:243:in 'mkdir'
No puedo hacer que se mueva. Cualquier ayuda es muy apreciada. ¡Gracias
ACTUALIZAEsta solución me ha funcionado siempre:
Primero Limpie sus activos
rm -rf public/assets
rake assets:clean RAILS_ENV=production
Segundo, en # production.rb change
config.assets.compile = false
config.assets.compile = true
Tercero, corre para precompilar tus activos
rake assets:precompile RAILS_ENV=production
Cuarto, en # production.rb change
config.assets.compile = true
de regres
config.assets.compile = false
Quinto, reinicie su servidor ejecutando:
touch tmp/restart.txt
Sexto, des-restringe los permisos en tus activos recién creados ejecutando este comando
chmod -R 777 público / activos
Séptimo, celebra !!