Para mantener la lógica de JavaScript específica del controlador fuera de la norma application.js
y solo la tiene incluida el controlador relevante, la incluyo en su propio archivo .js que incluye se basa en el nombre del controlador de la disposición, como por ejemplo:Estrategia de Rails 3.1 para precompilar activos JS específicos del controlador
<%= javascript_include_tag "application", params[:controller] %>
que funciona muy bien, pero cuando puedo implementar la aplicación a la producción (estoy usando Capistrano y tener un pre-compile operativos creados), la la canalización de activos no precompila ninguno de los archivos JS específicos del controlador. Supongo que esto se debe a que las directivas require no hacen referencia a mi archivo JavaScript real en application.js.
¿Cómo me ocupo de esto sin mover mi JS específico de controlador de nuevo a application.js, o hacer referencia explícitamente desde application.js?
¿Hay alguna forma de decirle a la canalización de activos que compile previamente una lista adicional de archivos? ¿Cómo podría precompilar manualmente un archivo específico en producción?
actualización
Como turns out, puede especificar archivos individuales aquí en su config/environments/production.rb
:
config.assets.precompile += %w(achievements.js)
... o simplemente me fui por delante y caprichosamente añadido que para cada archivo JavaScript:
config.assets.precompile += %w(*.js)
¡esto debería ser realmente automático! –
¡Vale la pena señalar aquí que agregar archivos scss/coffee a la lista precompilada NO FUNCIONARÁ! (¡Y no arrojar ningún error tampoco!). Debe nombrar solo con la extensión .js/css. –