使用gulp-rev-collector进行静态资源路径替换,html上没有替换成功

网上看了很多教程,完全按照配置来的,但是一直路径都没有被替换,后完全按照npm官网上配置gulp,也没有效果,求组大神,是不是gulp插件有问题,还是配置问题。

clipboard.png

阅读 16.1k
8 个回答

这是因为gulp-rev-collector有个bug,打开node_modules/gulp-rev-collector/index.js,第74行:

将 dirRX:  escPathPattern( closeDirBySep(srcDirname))替换成:
dirRX:  escPathPattern( closeDirBySep(srcDirname)).replace(/'/g, ''),

你看一下你在用gulp-rev的时候生成的rev-manifest.json文件中的文件名是否和你在html中要替换的那个文件名一致,我在替换过程中,由于使用了gulp-rename,所以生成的文件名为index-XXX.min.css,而在html中我自己写的引用文件名为index.css,并没有.min,所以在于json匹配的时候无法匹配到导致无法替换,你需要除了哈希值以外的其他所有文件名都一致才可以匹配替换。

请问楼主现在解决这个问题了吗?我这边现在遇到的问题是css可以替换,但是js一直没替换

我遇到了类似的问题,但是我问题的原因是.css文件的层级太深了,比如html文件里引用了themes/css/a/b/c/test.css,执行gulp命令后,所有html里面的css引用名称都没有替换。
解决方案:删除一层文件夹,并修改html文件内的引用路径为themes/css/a/b/test.css,再次gulp打包就正常了。

新手上路,请多包涵
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏