我有YUI项目是mavenized。当我们发布新的YUI代码时,它不会立即反映在浏览器中,直到您在浏览器上执行SHIFT + REFRESH为止。Yui无效javascript版本缓存与新版本
我一直在用YUI模块的方式来加载脚本是这样的:
YUI.GlobalConfig = {
modules: {
'manual-entry-util': {
fullpath: 'resources/js/common.js',
requires: [ 'node']
},
'user-perm-util' : {
fullpath: 'resources/js/userPermUtil.js',
requires: [ 'node', 'io-base', 'json', 'json-stringify']
},
'file-upload-custom' : {
fullpath: 'resources/js/fileUploadCustom.js',
requires: [ 'gallery-datatable-selection','event-custom', 'node']
},
'icsd-uploader' : {
fullpath: 'resources/js/icsdUploader.js',
requires: [ 'uploader', 'node']
},
'ui-util' : {
fullpath: 'resources/js/uiUtil.js',
requires: [ 'node']
}
}
};
我相信我们需要修改的网址有某种变量,这样新的代码可以通过浏览器拾起的。
有没有一种方法可以通过maven或其他工具自动化这个过程。例如。它可以从.js文件的内容生成哈希值,然后将其添加到.js文件的url中?
谢谢。这看起来很详细。我将不得不单独消化每一步,因为我还没有使用组合加载器。对于缓存破坏,我修改了所有的URL。js文件在Maven构建过程中添加一个像这样的GIT哈希(fullpath:'resources/js/32kdf23rweqeqe/userPermUtil.js')。所以我不得不要求maven在构建过程中将.js文件复制到这个新位置。我猜ResourceLoaderAware会取消将js文件复制到基于散列的文件夹的不必要步骤。 – makcalif 2014-09-09 04:23:17