Tengo algunos problemas con los activos en producción: datos faltantes, material compilado en los archivos incorrectos (javascript para "/ admin" compilado en el código de interfaz, etc.). La mayoría de los activos provienen de motores. Quiero depurar y optimizar esto.Hacer que la canalización de activos actúe como producción en desarrollo
Por eso, tienen que precompilar, servir y fallar en mi entorno de desarrollo al igual que se hace en la producción .
he añadido algunas líneas a mi config/development.rb
:
config.serve_static_assets = true
config.assets.precompile += %w(store/all.js store/all.css admin/all.js admin/all.css) # @TODO: clean up, and optimize.
config.assets.compile = false
La ejecución de este con rake RAILS_GROUPS=assets RAILS_ENV=development assets:precompile
me da todos los activos y la manifest.yml
en public/
.
Pero entonces el servidor falla:
Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Spree/home#index
Showing /xxxx/app/views/spree/shared/_head.html.erb where line #13 raised:
favicon.ico isn't precompiled
favicon.ico no se precompila. ¡Pero es! Está allí, en el directorio público, en manifest.yml
, y puedo buscarlo con el navegador (o wget): http://localhost:3000/assets/favicon.ico.
NOTA Favicon es simplemente el primer recurso llamado. Si elimino el favicon, el problema simplemente emerge con el siguiente activo, que es "all.js" o, cuando se elimina, "all.css", y así sucesivamente. Puedo quitarlo hasta "footer_bg.png", y luego fallará allí. De nuevo: el problema no es el favicon, sino el hecho de que el entorno de desarrollo no ve en absoluto los activos precompilados.
¿Qué más se necesita para conseguir el desarrollo tubería activo similar a la producción ?
EDITAR: explicación más explícita de que el favicon no es el problema, simplemente un síntoma.
¿Cuál es su pila de entorno de producción? Servidor único/Servidor múltiple, Apache/Nginx, Heroku? ¿Estás desplegando usando capistrano y usando la receta capistrano? ¿Estás usando config.serve_static_assets = true en producción? ¿Has intentado manejar serve_static_assets a través de apache/nginx en lugar de dentro de Rails como recomienda Rails? – John
Mi pila de producción es prácticamente una caja negra de pasajeros. Es un sitio 5 vhost. No estoy implementando con capistrano, pero con un gancho git-push && post-commit (también conocido como git-deploy). 'config.serve_static_assets = true' está deshabilitado. He intentado servir activos a través de Apache, sí. Resuelve poco. Como el problema que trato de resolver aquí, mi entorno ** de desarrollo ** no está sirviendo a mis activos como en la producción. – berkes