RequireJS会自动为每个模块名称添加“.js”扩展名,而已知的黑客攻击是在最后添加?
,详细内容为here和here。
问题是,添加问号意味着缓存和代理服务器通常会认为这些是动态文件而不是缓存它们。我想这是可配置的,如果我控制这些缓存/代理服务器,但在我的服务器和客户端之间可能存在代理服务器的下游,这是我无法控制的。
那么,还有其他方法可以让RequireJS不添加{/ 1}}扩展而不是添加问号吗?
答案 0 :(得分:1)
无法配置require.js来实现您的目标。但是您可以覆盖require.load
方法并进行网址预处理
require.load = (function(load) {
var stripJSRegex = /\.js$/;
return function(context, moduleName, url) {
load.call(this, context, moduleName, url.replace(stripJSRegex, ''));
}
})(require.load);