2011-08-06 14 views
7

Estoy experimentando con Rails 3.1 que usa Sprokets 2.0 como su "canal de activos" y tratando de configurarlo para utilizar bibliotecas alojadas en CDN en producción, pero el archivo alojado local Para desarrollo.Uso de bibliotecas JS alojadas en CDN para producción en Rails 3.1

es decir, en el desarrollo: jquery.js se carga como parte de application.js

pero en la producción: http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js se carga en su lugar.

Pregunta de bonificación: ¿alguna razón por la que no debería hacer esto?

+0

que estoy haciendo lo mismo en mis proyectos :) –

+0

1 para hacer las cosas bien. De hecho, creé un proyecto hace unos seis meses que lo soportó colocando una llamada 'use_remote' dentro del archivo de destino. Esto permitió la resolución de dependencia automática junto con la ventaja de los scripts alojados de CDN. Puede consultar algunas ideas en el proyecto: javascripto.org. He dejado de trabajar en este proyecto desde la introducción de la cartera de activos, pero pensé que era relevante. Espero que la cartera de activos sea compatible con algo como esto. También me gustaría ver algo así como mi concepto de paquetes. –

+1

¿Cómo hizo que Rails 3.1 utilizara jQuery incluido localmente en desarrollo y CDN alojado en producción? Estaba haciendo esto en 3.0, pero no sé cómo hacer esto cuando la canalización de activos está habilitada. – Roman

Respuesta

1

No hay ninguna razón para no hacer esto. El objetivo de la CDN de Google es que cuando muchos sitios diferentes usen el mismo archivo CDN, es probable que el navegador u otro lugar ya los guarde en la memoria caché. El objetivo de la tubería es hacer lo mismo: comprimir + paquete + encabezados de futuro lejano.

La única razón para no usarlo es que el CDN está muy lejos y pocos sitios que usan sus visitantes también usan el CDN.

En mi caso, estoy en Nueva Zelanda, y algunos sitios locales de cualquier nota están utilizando el CDN. Esto agrega una alta multa a la primera solicitud a las personas que visitan nuestro sitio (nadie ha obtenido el archivo mientras navegaba por otro sitio local). Opté por incluir jquery en el paquete de producción para evitar las solicitudes y el tiempo de carga (aproximadamente 700 ms desde Nueva Zelanda).

YMMV!

Cuestiones relacionadas