rails ruby-on-rails-3.1 asset-pipeline sprockets

ruby on rails 3.1 - Canalización de activos de Rails: forma estándar para incluir todos/vendor/asset/javascripts/?



format.js rails (2)

He estado haciendo la transición de una aplicación a Rails 3.1 (y ahora a 3.2) y vi el Railscast en el canal de activos . Moví todos mis archivos de plugin de jquery de terceros al directorio / vendor / asset / javascripts /. En mi /app/assets/javascripts/application.js tengo lo siguiente:

//= require jquery //= require jquery_ujs //= require_tree . //= require_self

Me di cuenta del require_tree . call solo carga el árbol para el directorio / app / asset / javascripts /. (¿Es correcto?) ¿Cuál es la mejor manera de incluir todos los javascripts del "proveedor"? (No estoy preocupado por hacer pedidos en este momento). Por supuesto, podría requerirlos línea por línea en /app/assets/javascripts/application.js. Mi otro pensamiento fue crear /vendor/assets/javascripts/vendor_javascripts.js con lo siguiente:

//= require_tree .

Y luego en /app/assets/javascripts/application.js agregue lo siguiente:

//= require vendor_javascripts

Aunque esto parece un poco torpe. ¿Hay una mejor manera de incluir automáticamente todos los javascripts del "proveedor" (y / o "lib")?

PD. Vi esto acerca de los archivos index.js , pero potencialmente podría terminar con varios archivos llamados index.js, ¿verdad? Ah, y he intentado reiniciar mi servidor a lo largo.


Puedes agregar algo como esto en tu app/assets/javascripts/application.js para incluir todos los javascripts del proveedor:

//= require_tree ../../../vendor/assets/javascripts/.


Sé que es una pregunta antigua, pero puede crear un archivo de manifiesto en la carpeta vender / asset / javascript:

#vendor/assets/javascripts/my_jquery_plugins/manifest.js # require_tree .

Y en tu aplicación.js:

//= require my_jquery_plugins/manifest.js

Si está utilizando Rails 4, nombre el manifest.js como index.js y en su application.js :

//= require my_jquery_plugins

Es menos hacky que el camino relativo descrito.