最简单的模板文件静态资源版本号替换方案
js css 等静态文件复制成以时间戳命名的文件,并以这个新时间戳替换 html, php 等页面模板的老时间戳。
如果没有用过 grunt 请看 http://gruntjs.com/
npm install grunt-assets-version-replace --save-dev
在 Gruntfile.js 中加上
grunt.loadNpmTasks('grunt-assets-version-replace');
要复制成以时间戳命名的文件列表
Type: Array
Default value: []
时间戳前缀,比如生成 'taobao_new_home_auto_create_ts_1421999411.js',前缀即是 taobao_new_home_auto_create_ts_
。用于搜索、替换模板文件中的时间戳。同一个模板文件中可能要替换两个或多个不同前缀组成的时间戳。
Type: String
Default value: auto_create_ts_
复制出以时间戳命名的文件列表后目标文件夹
Type: Array
Default value: []
要替换时间戳的 html 或 php 或其他任意格式的文件模板
Type: Array
Default value: []
静态资源如下: js_build/app.js css_build/webapp.css
js_build 和 css_build 下的文件是 compass uglify 生成的文件
配置如:
grunt.initConfig({
assets_version_replace: {
commons: {
tsFiles: ['test/css_build/*.css', 'test/js_build/*.js'],
tsPrefix: 'common_auto_create_ts_',
tsVersionedFilesDest: 'test/dist/',
replaceTemplateList: [
'test/header.php',
'test/footer.php',
'test/submodule/header.php',
],
}
}
})
生成结果:
dest/app.auto_create_ts_1421999411.js
dest/webapp.auto_create_ts_1421999411.css
更复杂的配置:
grunt.initConfig({
assets_version_replace: {
commons: {
tsFiles: ['test/css_build/*.css', 'test/js_build/*.js'],
tsPrefix: 'common_auto_create_ts_',
tsVersionedFilesDest: 'test/dist/',
replaceTemplateList: [
'test/header.php',
'test/footer.php',
'test/submodule/header.php',
],
},
submodule: {
tsFiles: ['test/submodule/css_build/*.css', 'test/submodule/js_build/*.js'],
tsPrefix: 'submodule_auto_create_ts_',
tsVersionedFilesDest: 'test/dist/',
replaceTemplateList: [
'test/submodule/header.php',
'test/submodule/footer.php'
]
}
}
})
生成结果:
dest/js_build/app.auto_create_ts_1421999411.js
dest/css_build/webapp.auto_create_ts_1421999411.css
dest/submodule/js_build/app.auto_create_ts_1421999411.js
dest/submodule/css_build/webapp.auto_create_ts_1421999411.css
- 2015-03-03 v0.2.1 Fix typo
- 2015-02-06 v0.2.0 Migrate and refactor
- 2015-01-06 v0.1.0 Initial commit