RequireJS data-main,查询字符串不起作用

时间:2013-10-21 13:05:46

标签: javascript requirejs

为了避免浏览器缓存我优化的JS包,我想在请求URL上包含MD5总和。我试过像:

<script src="lib/require.js" data-main="app/main.js?md5=ABCD"></script>

但是,引入查询字符串会导致向/main.js发出GET请求。也就是说,缺少查询字符串,路径中甚至缺少scripts

如何强制将data-main中指定的脚本请求加载到我计算的哈希值?请注意,正在生成标记,因此我可以将哈希注入HTML文档中的任何位置。

1 个答案:

答案 0 :(得分:4)

诀窍是使用urlArgs配置设置。因此,在此示例中,代码应类似于:

<script>
require = {
    urlArgs: 'md5=ABCD'
};
</script>
<script src="lib/require.js" data-main="app/main.js"></script>

确保在加载require库之前定义全局require.js对象

这是有效的,因为RequireJS在启动时会运行以下代码(从v2.1.10开始,请参见未经管理的源代码的第190行):

//Allow for a require config object
if (typeof require !== 'undefined' && !isFunction(require)) {
    //assume it is a config object.
    cfg = require;
    require = undefined;
}

检查浏览器的开发工具,您应该看到查询字符串上的参数:

enter image description here