gulp-rev-append md5版本号

文件MD5命名中路径问题

项目中使用gulp-rev-append插件给文件加版本号,解决静态资源文件缓存的问题。
实际使用中,版本命名卡在了路径处理上。

项目目录如下:

clipboard.png

index.html

clipboard.png

gulpfile.js 配置如下:

var rev = require('gulp-rev-append');

gulp.task('rev',function () {
    gulp.src('../h5.mailejifen.com/views/site/index.html')
        .pipe(rev())
        .pipe(gulp.dest('../h5.mailejifen.com/views/site/'))
})

输出结果:
clipboard.png
@@hash值没有被MD5版本号替换。

于是我做了个例子比较:

index.html
clipboard.png

输出结果为:
clipboard.png
可以看出:加上网址前缀的http://static.mailejifen.com 和 文件引用地址中有变量的{{theme}} 文件不能通过gulp-rev-append 追加版本号。

想用路径替换的方式做,gulp-rev+ gulp-collector, 实际使用也没有成功。

大家对文件采用绝对路径(因为在不同的域下)引用,且文件路径中存在变量(后台输出的时候才能赋值)的场景,怎么使用gulp-rev-append(或者其他插件) 解决给引用资源加版本号的问题呢?

阅读 5.2k
2 个回答

请问,题主最后解决了吗?有什么解决方案没呢?我也遇到此问题

我修改了下源码解决的。找到node_modules --> gulp-assets-rev -->index.js。我的资源都是通过http这种方式去请求的。把关于http判断的更改如下。但这是个偏方,每次构建的时候,不管有没改文件都会重新生成随机数。
// remote resource

if (/^http?:\/\//.test(src)) {
    return src= tag + '"' + src+"?v=" + Math.random() +'"';
}    
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏