Prefiero no para concatenar archivos JavaScript en modo de desarrollo, pero sírvalos como archivos individuales. Así que he configurado:¿Cómo se pueden evitar los activos precompilados que se sirven en modo de desarrollo?
development.rb:
config.assets.compress = false
config.assets.debug = true
config.assets.compile = true
En mis/app/activos/javascript directorio que tengo:
- reviews.js
- comentarios/
- foo.js
- bar.js
reviews.js:
//= require jquery
//= require jquery_ujs
//= require_tree ./reviews
que incluyen el uso de JavaScript <%= javascript_include_tag "reviews" %>
en mi diseño. La página generada hace referencia correctamente a los tres scripts individualmente y reviews.js
está esencialmente vacío. Hasta aquí todo bien.
Ahora, cuando PRECOMPILE mis activos para la producción utilizando rake assets:precompile
los tres archivos JavaScript se concatenan en reviews.js
. Esto está bien para la producción, pero ahora, en el modo de desarrollo, el 0 concatenado reviews.js
se sirve además en los dos archivos individuales.
Por supuesto, esto conduce a todo tipo de insectos desagradables cuando se desarrollan debido momento, el contenido de foo.js
y bar.js
se sirve en dos ocasiones, una de ellas en una versión potencialmente mayor en reviews.js
.
¿Cómo puedo asegurarme de que Rails no utilice los recursos precompilados en el modo de desarrollo?
Gracias por el consejo, he borrado los archivos compilados a nivel local y configurado para tener los recopiló en git push a heroku. –
Esa fue la respuesta que necesitaba. Es cierto que no necesito estos activos precompilados a nivel local mientras desarrollo, pero a medida que estoy aprendiendo a configurar el inventario de activos, realmente los necesito para probar mi modo de producción localmente, ¡en lugar de esperar la sorpresa en Heroku! Por ahora cambiaré el nombre del directorio (o los colocaré en una rama git), pero aún así es una pena que sea una cosa más en la que deba pensar, en lugar de una opción de configuración en el entorno de desarrollo para decir "ignorar el público/activos" directorio "que estaba esperando. – Phantomwhale
Es posible que no olvide borrar la caché de su navegador para que el navegador no use la aplicación.js que cargó accidentalmente antes de rm -rf'd public/assets –