Skip to content

Versionado. gestión de la cache

jacarma edited this page Oct 1, 2013 · 2 revisions

La tarea rev se utiliza junto con yeoman/grunt-usemin para controlar cómo el navegador cachea los archivos de nuestra aplicación. Añade un nuevo número de versión a los archivos estáticos (js, css, imágenes...) y actualiza las referencias a ellos en los archivos (css, html) de forma que el navegador pueda cachearlos para siempre.

Overview

En tu Gruntfile, añade una sección rev dentro de grunt.initConfig().

grunt.initConfig({
  rev: {
    options: {
      encoding: 'utf8',
      algorithm: 'md5',
      length: 8
    },
    assets: {
      files: [{
        src: [
          'img/**/*.{jpg,jpeg,gif,png}',
          'fonts/**/*.{eot,svg,ttf,woff}'
        ]
      }]
    }
  },
})

Opciones

options.encoding

Tipo: String Valor por defecto: 'utf8'

El encoding de nuestros archivos.

options.algorithm

Tipo: String Valor por defecto: 'md5'

algorithm depende de los algoritmos disponibles en la versión de OpenSSL de la plataforma. Opciones válidas son 'sha1', 'md5', 'sha256', 'sha512', etc. En las versiones más nuevas, openssl list-message-digest-algorithms muestra los algoritmos disponibles.

options.length

Tipo: Number Valor por defecto: 8

El número de caracteres que deseamos para el prefijo para el nombre del archivo.

Ejemplos

Versionado básico

Esto renombrará app.js y app.css con un prfijo hash de 8 caracteres. Por ejemplo js/9becff3a.app.js y css/ae35dd05.app.css. El valor del hash depende de los contenidos del archivo.

grunt.initConfig({
  rev: {
    files: {
      src: ['scripts/app.js', 'css/app.css']
    }
  }
})

Opciones personalizadas

Cambiamos el tamaño o el algoritmo del nombre del recurso. Nota: La tarea usemin requiere al menos un caracter hexadecimalcomo prefijo.

grunt.initConfig({
  rev: {
    options: {
      algorithm: 'sha1',
      length: 4
    },
    files: {
      src: ['**/*.{js,css,png,jpg}']
    }
  }
})