Imágenes y activos que no funcionan en mi servidor de producción en Rails 3.1.0
-
27-10-2019 - |
Pregunta
Cambié mi servidor a la producción y no puedo cargar ninguna de mis imágenes. Todo funciona bien en el modo de desarrollo, pero cuando cambié a la producción, todo dejó de funcionar, he habilitado server_static_assets y aún así nada funciona. Cualquier ayuda para hacer esto
Solución
Aquí hay algunos problemas que podría tener:
1 - Su configuración de producción puede no ser correcta. Esto es particularmente probable si comenzó con un candidato de lanzamiento de 3.1 temprano y ha estado actualizando en el camino. Las opciones sugeridas para la producción. RB cambiaron bastante entre RC4 y la versión 3.1.0.
Asegúrese de que su configuración de producción. RB incluya:
# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false
# Generate digests for assets URLs
config.assets.digest = true
2 - Es posible que haya olvidado precompilar sus activos
RAILS_ENV=production rake assets:precompile
3 - Es posible que haya olvidado reiniciar su servidor web para recoger los cambios en la producción. RB.
Otros consejos
Recuerda correr rake assets:precompile
en su entorno de producción.
Si lo necesita, se está implementando con Capistro, puedes usar esta receta:
before "deploy:symlink", "assets:precompile"
namespace :assets do
desc "Compile assets"
task :precompile, :roles => :app do
run "cd #{release_path} && rake RAILS_ENV=#{rails_env} assets:precompile"
end
end
Si está actualizando a Rails 4 o lo está utilizando actualmente en la producción, y está cargando imágenes de CSS, entonces:
en vez de
background-image: url('some_image.jpg');
hacer
background-image: image-url('some_image.jpg');
Ver http://guides.rubyonrails.org/asset_pipeline.html#css-sass para referencia