2012-03-30 14 views
6

¿Hay alguna manera de eliminar los parámetros de eliminación de memoria caché de URL para recursos de CDN externos?Evite los parámetros de eliminación de memoria caché de URL con RequireJS para CDN

Quiero tener memoria caché para mis archivos de biblioteca, pero no para los archivos externos de jquery cdn. Ahora estoy usando: requirejs.config({ urlArgs : "v1.1"}); para tener el almacenamiento en memoria caché.

¿Alguna sugerencia de cómo hacer esto?

Gracias

Respuesta

0

¡Esta es ciertamente la pregunta más antigua que he respondido hasta ahora!

He creado este violín para usar RequireJS contexts, pero parece que no funciona.

Los contextos cargan los módulos de las diferentes rutas, ok, pero ambas llamadas a require() usan el parámetro caché (urlArgs).

Por lo tanto, mi conclusión sería que no puede hacer lo que desea hacer desde el primer momento.

http://jsfiddle.net/FXSSf/5/

// Fiddle to try and have two RequireJS contexts, one without cache bust for CDN and one with cache bust for 'our' files 
// See http://requirejs.org/docs/api.html#multiversion 

// ensure that $ is invalid to begin with 
var $ = null; 

var cdnRequire = require.config({ 
    paths: { 
     "jquery": "http://code.jquery.com/jquery-1.9.1" 
    }, 
    urlArgs: "" 
}); 

var ourRequire = require.config({ 
    baseUrl: "https://gist.github.com/gitgrimbo/5130393/raw/b9402d4dfb00ff0ad3211f30681bb6d0411e4295", 
    urlArgs: "ourRequire-" + new Date().getTime() 
}); 

// cdnRequire should *not* use cache bust parameter 
cdnRequire(["jquery"], function ($) { 
    alert($.fn.jquery); 
    // ourRequire *should* use cache bust parameter 
    ourRequire(["gistfile1"], function (myModule) { 
     alert(myModule); 
    }); 
}); 
+0

Gracias @ Pablo por la respuesta. Todavía estoy buscando una solución para este problema. Es un caso de uso tan común que no puedo creer que no se esté implementando en los requisitos. – valentinvieriu

Cuestiones relacionadas