我有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