2012-03-30 4 views
6

Gibt es eine Möglichkeit, die URL-Cache-Busting-Parameter für externe CDN-Ressourcen zu entfernen?URL-Cache-Busting-Parameter mit RequireJS für CDN vermeiden

Ich möchte Cache-Busting für meine Bibliotheksdateien, aber nicht für externe jquery CDN-Dateien. Im Moment verwende ich: requirejs.config({ urlArgs : "v1.1"});, um den Cache zu zerstören.

Irgendwelche Vorschläge, wie man das macht?

Danke

Antwort

0

Dies ist sicherlich die älteste Frage, die ich bisher beantwortet habe!

Ich habe diese Geige erstellt, um RequireJS contexts zu verwenden, aber es scheint nicht zu funktionieren.

Die Kontexte laden die Module aus den verschiedenen Pfaden ok, aber beide Aufrufe an require() verwenden den Cache-Bust-Parameter (urlArgs).

Also meine Schlussfolgerung wäre, dass Sie nicht tun können, was Sie out-of-the-box tun möchten.

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

Danke @ Paul für die Antwort. Ich suche immer noch nach einer Lösung für dieses Problem. Es ist so ein häufiger Anwendungsfall, dass ich nicht glauben kann, dass es nicht in den Requests implementiert wird – valentinvieriu