2012-06-08 11 views
12

En el rubí en los carriles de guía al Activo de la tubería, se dice¿Por qué debería usar la canalización de activos para enviar imágenes?

ningún bien en virtud del público serán servidos como archivos estáticos de la aplicación o servidor web. Debe usar la aplicación/activos para los archivos que deben someterse a un procesamiento previo antes de ser atendidos.

http://guides.rubyonrails.org/asset_pipeline.html

Para mí, esto dice que las imágenes deben guardarse en el directorio público, ya que pueden ser servidos de forma estática por mi servidor web y no requieren pre-procesamiento.

¿Hay ventajas en poner sus imágenes en assets/?

+0

@ gmoore- Preguntándome lo mismo. Otra cosa que estaba pensando, el nombre de archivo de MD5, oscurece el nombre del archivo de imagen de alguna manera, ¿lo que podría perjudicar el hecho de que Google indexe sus imágenes? – Yarin

Respuesta

9

La precompilación de activos agrega un valor hash exclusivo a los nombres de archivo de imágenes, lo que permite a los usuarios obtener la última versión a pesar de la caché o las configuraciones de caducidad en el servidor. Esto es útil cuando quiere cambiar las imágenes en el diseño del sitio web.

No desea utilizar /assets/images para las imágenes que es poco probable que cambien (como las cargas de los usuarios).

+0

Es cierto que no desea utilizar '/ assets/images' correctamente para las cargas de usuarios. Sin embargo, es una buena práctica usarlo para todas sus propias imágenes, incluso si no espera que cambien (por ejemplo, un logotipo). Usar diferentes carpetas solo complicará su configuración sin ninguna ventaja. – jokklan

4

Porque dañaría la versatilidad de la cartera de activos.

Con las imágenes que se sirven a través de la canalización de activos, si cambia la canalización de activos (por ejemplo, que cargue archivos en S3), deberá sincronizar sus imágenes mediante otra tarea.

Puede haber otras razones más profundas, pero eso es lo que me daría pausa.

EDITAR: Nota al pie: en producción gracias a los activos: precompilar todo desde/assets/se servirá desde el público.

+0

Buen punto sobre los activos precompilados servidos desde el público. – gmoore

+0

@DanielEvans - ¿Puedes explicar a qué te refieres con "cambiar la cartera de activos"? No entendí el ejemplo que dio sobre la carga a S3. – Yarin

+1

@Yarin Sure: Es una práctica común que los activos estáticos de su aplicación se presten desde otro lugar que no sea público. Por ejemplo, su proceso de implementación puede enviar activos a un CDN o Amazon S3. Puede mejorar el flujo de activos para que los activos se rake: la precompilación coloca los activos donde los quiere. Sin embargo, si tiene activos almacenados en público/puede que tenga que ajustar manualmente gemas/scripts existentes que funcionen para usted. –

Cuestiones relacionadas