为了避免浏览器缓存我优化的JS包,我想在请求URL上包含MD5总和。我试过像:
<script src="lib/require.js" data-main="app/main.js?md5=ABCD"></script>
但是,引入查询字符串会导致向/main.js
发出GET请求。也就是说,缺少查询字符串,路径中甚至缺少scripts
。
如何强制将data-main
中指定的脚本请求加载到我计算的哈希值?请注意,正在生成标记,因此我可以将哈希注入HTML文档中的任何位置。
答案 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;
}
检查浏览器的开发工具,您应该看到查询字符串上的参数: