13

He estado desarrollando un sitio en rieles, todo va relativamente bien. De repente, mis cambios a los puntos de vista y los activos ya no aparecen. Cambio una hoja de estilo o algún html y vuelvo a cargar mi navegador al http://0.0.0.0:3000 y no cambia nada. Entonces reinicio WEBrick y aún nada ha cambiado. Este es incluso el caso si cambio una imagen por completo.Rails dev environment no actualiza html/css/assets incluso después de reiniciar el servidor

La única manera de conseguir los nuevos cambios es precompilar los activos:

C:\Users\me\website>rake assets:precompile 
C:/Ruby193/bin/ruby.exe C:/Ruby193/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets 

¿Por qué se muestra la producción como el RAILS_ENV? Tal vez mi entorno de desarrollo de alguna manera se convirtió en el entorno de producción? Pero incluso entonces no debería necesitar precompilar los activos para obtener los cambios reflejados. De todos modos Rails.env.development? devuelve true y Rails.env.production? devuelve false en controladores y archivos erb.

He intentado eliminar mi directorio/tmp en vano.

he tenido que añadir la siguiente línea a config/application.rb el fin de obtener Heroku para trabajar con brújula:

config.assets.initialize_on_precompile = false 

Sin embargo, la eliminación de esa línea no ayudó a mi problema de todos modos.

Respuesta

31

Borre el contenido de su directorio public/assets/. Ahí es donde van los archivos precompilados, y se sirven si existen, en lugar de que la solicitud caiga en Sprockets. Puedes hacer un nuke con todo el directorio y las cosas deberían funcionar de nuevo.

+1

perfecta, gracias –

+4

Lamentablemente, esto todavía no funciona para mí en el desarrollo. – Donato

+6

También vale la pena borrar su carpeta 'tmp/cache' – McFadden

7

Otra técnica es cambiar el nombre del directorio public/assets/a algo así como public/assets_hide /. A continuación, cambie el nombre de nuevo antes de ejecutar "activos de rake: precompilación" y empujando hacia el servidor. Esto reduce el tiempo de precompilación y también conserva los permisos del archivo de activos para algunas gemas, como rich, que se copia sobre los activos.

Una forma más fácil es modificar su archivo de entornos development.rb config// a:

config.serve_static_assets = false 

Entonces no tendrá que meterse con el directorio público/activos. Sin embargo, si está utilizando algo como un clip para cargar archivos de imagen, esto no funcionará porque los archivos de imagen no se servirán.

3

Probablemente obvio para todos, pero sólo quería añadir que si borrar o renombrar pública/activos/carpeta, es probable que también es necesario reiniciar el servidor local y la memoria caché del navegador claro :-)

Cuestiones relacionadas