2011-09-20 12 views
21

Cuando se utiliza tubería de activos en los carriles 3.1, se crea un defecto application.js:¿cuál es el motivo detrás del árbol de requisitos predeterminado en la canalización de activos?

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

pero cuando voy a necesitar incluir todos los de mi javascript? En la mayoría de los casos usamos diferentes javascrips para diferentes controladores/vistas?

+2

Casi nunca intento dividir mi JavaScript de forma tan granular; no vale la pena el esfuerzo de asegurarse de que cada página tenga los archivos precisos necesarios. El tamaño de JavaScript modificado y comprimido es bastante pequeño. –

+3

Pero ¿qué tal css? CSS no tiene espacio de nombre (a diferencia de javascript), no 'require_tree .' ¿hace fácilmente producir conflictos? –

+1

Casi nunca he tenido conflictos sustanciales de CSS, pero supongo que podría ser un problema, claro, pero en ese punto, ya no necesita un comportamiento predeterminado, por lo que parece razonable eliminar la configuración predeterminada. Recuerde: Rails es obstinado, y no todos tienen la misma opinión :) –

Respuesta

18

require_tree . dará como resultado que tenga un único archivo (application.js en este caso) que contenga todos los scripts que hay en la carpeta. Y el hecho de que los navegadores solo saquen ese archivo una vez de su servidor web (a menos que realice una actualización Ctrl + R o haya un cambio en la propiedad de caché de archivos), hace que las aplicaciones se comporten más rápido para solicitudes posteriores.

A menos que, por supuesto, tengas una aplicación que tenga scripts bastante variables y grandes, y no se espera que un usuario típico se mueva demasiado, por lo que no necesitaría la mayoría de ellos. Lo que obviamente no es un caso muy común.

para obtener información adicional y detallada. mira aquí http://guides.rubyonrails.org/asset_pipeline.html

+0

"require_tree." Dará como resultado que tenga un único archivo (application.js en este caso) que contenga todos los scripts que hay en la carpeta ". ¿Qué carpeta? –

+0

@MarkKramer, la carpeta donde se coloca su application.js – thanikkal

2

El navegador carga application.js una vez y luego lo obtiene de la memoria caché.

Cuestiones relacionadas