使用RequireJS for CDN避免URL缓存破坏参数

时间:2012-03-30 12:35:08

标签: requirejs

有没有办法删除外部CDN资源的URL缓存清除参数?

我希望我的库文件有缓存清除,但外部jquery cdn文件没有。 现在我正在使用:requirejs.config({ urlArgs : "v1.1"});来缓存缓存。

有任何建议怎么做?

由于

1 个答案:

答案 0 :(得分:0)

这肯定是我迄今为止回答的最古老的问题!

我创建了这个小提琴来使用RequireJS contexts,但它似乎不起作用。

上下文加载来自不同路径的模块ok,但是对require()的两次调用都使用缓存半身像(urlArgs)参数。

所以我的结论是你不能做你想做的开箱即用。

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);
    });
});