Canalización de activos en Rails 3.1.0

La canalización de activos proporciona un marco para concatenar y minimizar o comprimir activos de JavaScript y CSS. También agrega la capacidad de escribir estos activos en otros lenguajes como CoffeeScript, Sass y ERB. En Rails 3.1, la canalización de activos de Rails está habilitada de forma predeterminada. Se puede desactivar en config/application.rb poniendo esta línea dentro de la definición de clase de aplicación:

config.assets.enabled = falso

También podemos desactivar la canalización de activos mientras creamos una nueva aplicación pasando la opción —skip-sprockets.

nuevo nombre de aplicación de rieles –skip-sprockets

Características de la canalización de activos:
1.Concatenar activos

Esta característica es importante en un entorno de producción porque puede reducir la cantidad de solicitudes que debe realizar un navegador para representar una página web. Los navegadores web están limitados en la cantidad de solicitudes que pueden realizar en paralelo, por lo que menos solicitudes pueden significar una carga más rápida de la aplicación.

Rieles 2.x introdujo la capacidad de concatenar activos de JavaScript y CSS colocando :cache => true al final de los métodos javascript_include_tag y stylesheet_link_tag. Pero esta técnica tiene algunas limitaciones. Por ejemplo, no puede generar cachés por adelantado y no puede incluir de forma transparente recursos proporcionados por bibliotecas de terceros.

2.Minificación o compresión de activos

Para los archivos CSS, la compresión se realiza eliminando espacios en blanco y comentarios. Para JavaScript, se pueden aplicar procesos más complejos. Podemos elegir entre un conjunto de opciones integradas o especificar las nuestras.

3.Permite codificar activos a través de un lenguaje de nivel superior, con precompilación de los activos reales. Los lenguajes admitidos incluyen Sass para CSS, CoffeeScript para JavaScript y ERB para ambos de forma predeterminada. En versiones anteriores de la canalización de activos de Rails, todos los activos se encuentran en subdirectorios públicos, como imágenes, javascripts y hojas de estilo.

Con la canalización de activos, la ubicación preferida para estos activos es ahora el directorio app/assets. Los archivos de este directorio son servidos por el middleware Sprockets incluido en la gema sprockets. Los activos aún se pueden colocar en la jerarquía pública. Todos los activos públicos serán entregados como archivos estáticos por la aplicación o el servidor web. deberíamos usar app/assets para archivos que deben someterse a algún procesamiento previo antes de ser entregados.

En producción, Rails precompila estos archivos en public/assets de forma predeterminada. Luego, el servidor web sirve las copias precompiladas como activos estáticos. Los archivos en app/assets nunca se entregan directamente en producción.

Cuando generamos un scaffold o un controlador, Rails también genera un archivo JavaScript (o un archivo CoffeeScript si la gema coffee-rails está en el Gemfile) y un archivo de hoja de estilo en cascada (o un archivo SCSS si sass-rails está en el Gemfile) para ese controlador.

Organización de activos:

La mayor diferencia práctica entre las aplicaciones Rails 3.0 y Rails 3.1 es un cambio en la ubicación de los archivos de activos, como imágenes, hojas de estilo y archivos JavaScript. En versiones anteriores de la canalización de activos de Rails, todos estos archivos vivían en el directorio público/:

público/imágenes/

público/hojas de estilo/

público/javascripts/

En Rails 3.1 y Rails 3.2.3, la ubicación de estos archivos difiere según si los creamos nosotros o provienen de un proveedor externo. En este caso, los archivos se encuentran en el directorio app/assets:

aplicación/activos/imágenes/

aplicación/activos/hojas de estilo/

aplicación/activos/javascripts/

En el caso de código o imágenes de proveedores externos, utilizamos el directorio de proveedores/activos:

proveedor/activos/imágenes/

proveedor/activos/hojas de estilo/

proveedor/activos/javascripts/

Archivos de manifiesto

Estos son archivos js o css simples que contienen procesadores de directivas, líneas de comentarios seguidas de un =

// …

//= requiere jquery

//= requiere jquery_ujs

//= requiere_árbol.

O:

/* …

*= requerir_yo

*= requiere_árbol.

Estos archivos de manifiesto hacen referencia e incluyen otros activos de los que dependen. require_directory y require_tree nos permiten requerir directorios completos y sus hijos, require_self también incluye cualquier js o css en el archivo de manifiesto.

Póngase en contacto con nosotros.

Suscríbete para recibir las últimas actualizaciones

Artículos Relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

es_ESSpanish