Ruby on Rails
Oleoducto de activos
Buscar..
Introducción
El flujo de activos proporciona un marco para concatenar y minimizar o comprimir los activos de JavaScript y CSS. También agrega la capacidad de escribir estos activos en otros lenguajes y preprocesadores como CoffeeScript, Sass y ERB. Permite que los activos en tu aplicación se combinen automáticamente con los activos de otras gemas. Por ejemplo, jquery-rails incluye una copia de jquery.js y habilita las funciones AJAX en Rails.
Tareas de rastrillo
Por defecto, las sprockets-rails
se envían con las siguientes tareas de rake:
-
assets:clean[keep]
: eliminar activos compilados antiguos -
assets:clobber
: eliminar los activos compilados -
assets:environment
: cargar entorno de compilación de activos -
assets:precompile
: compile todos los activos nombrados enconfig.assets.precompile
Archivos y directivas de manifiesto
En el initalizer de assets
( config/initializers/assets.rb
) hay algunos archivos definidos explícitamente para ser precompilados.
# Precompile additional assets.
# application.coffee, application.scss, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile += %w( search.js )
En este ejemplo, application.coffee
y application.scss
se denominan 'Archivos de manifiesto'. Estos archivos deben usarse para incluir otros recursos de JavaScript o CSS. Los siguientes comandos están disponibles:
-
require <path>
: las funciones de la directivarequire
similares a las de Rubyrequire
. Proporciona una forma de declarar una dependencia de un archivo en su ruta y asegura que solo se cargue una vez antes del archivo de origen. -
require_directory <path>
: requiere todos los archivos dentro de un solo directorio. Es similar a lapath/*
ya que no sigue directorios anidados. -
require_tree <path>
: requiere todos los archivos anidados en un directorio. Su equivalente global espath/**/*
. -
require_self
: hace que el cuerpo del archivo actual se inserte antes de cualquier directiva derequire
posterior. Útil en archivos CSS, donde es común que el archivo de índice contenga estilos globales que deben definirse antes de que se carguen otras dependencias. -
stub <path>
: elimina un archivo para que no se incluya -
depend_on <path>
: le permite establecer una dependencia en un archivo sin incluirlo. Esto se utiliza para fines de almacenamiento en caché. Cualquier cambio realizado en el archivo de dependencia invalidará la memoria caché del archivo de origen.
Un archivo application.scss
podría verse como:
/*
*= require bootstrap
*= require_directory .
*= require_self
*/
Otro ejemplo es el archivo application.coffee
. Aquí con la inclusión de jquery
y Turbolinks
:
#= require jquery2
#= require jquery_ujs
#= require turbolinks
#= require_tree .
Si no utilizas CoffeeScript, pero solo JavaScript, la sintaxis sería:
//= require jquery2
//= require jquery_ujs
//= require turbolinks
//= require_tree .
Uso básico
Hay dos formas básicas en que se utiliza el flujo de activos:
Al ejecutar un servidor en modo de desarrollo, automáticamente procesa y prepara sus activos sobre la marcha.
En el modo de producción, probablemente lo utilice para preprocesar, versionar, comprimir y compilar sus activos. Puedes hacerlo ejecutando el siguiente comando:
bundle exec rake assets:precompile