SMILET
修改了requirejs的源码,然后问题解决了。在对应的位置添加如下代码:if(typeof a.urlArgs==='function'){ var b=a.urlArgs();
a.urlArgs=function(a,c){ var jsFileName=c.substr(c.toString().lastIndexOf('/')+1); if(jsFileName in b){ return(-1===c.indexOf("?")?"?":"&")+"bust="+b[jsFileName];
}
else{ return(-1===c.indexOf("?")?"?":"&")+"bust="+'yhpz000'
}
}
}然后在底部写入:function setMoudlesBust(reditMoudles){
var reditMoudles= reditMoudles ? reditMoudles : requirejs.yhpzReditJs; return reditMoudles;
}
requirejs.yhpzReditJs={
'special.js':'5648678', 'submit.js':'5648678', 'ticket.js':'5648678'
};
requirejs.config({
urlArgs: setMoudlesBust
});requirejs.yhpzReditJs这个里面写的是所有js文件的名字及版本号,如果修改了某js文件,需要修改下版本号。整体上算是解决了,项目小。这种解决方法存在的问题:1,版本号需手动更改,比较麻烦。2,文件存在重命名问题。比如a目录下的touch.js 跟 b目录下的touch.js,这个会存在问题。3,这个修改方案需要单独列出来,成为一个模块。然后单独调用。