我正在使用Yeoman Webapp生成器来构建我的静态网站。
对于我的预加载器,我有以下代码片段(如果重要的话,我正在使用requireJS作为JS)。
for(var i = 1; i <= config.numSlides; i++) {
images.push(config.imageBase + i + '.jpg');
}
如您所见,我只是生成一个带数字的路径并为其添加.jpg。我的图片简称为1,2,3,... .jpg。
然而,由于Yeoman使用grunt-usemin ..它将我的图像文件重命名为:7f181706.3.jpg
。因此,我的脚本无法再找到正确的图像。有办法解决这个问题吗?
我正在查看文档,发现了类似的内容:
assetsDir: 'images',
patterns: {
js: [[/(image\.png)/, 'Replacing reference to image.jpg']]
}
那会是一个选择吗?我没有运气就试过了。不确定正确的模式是什么。
答案 0 :(得分:3)
您可以在此库的测试文件中拥有更好的代码示例,具体来说:https://github.com/yeoman/grunt-usemin/blob/master/test/test-usemin.js#L233
您可以在哪里找到以下代码:
it('should allow for additional replacement patterns', function () {
grunt.file.mkdir('images');
grunt.file.write('images/image.2132.png', 'foo');
grunt.log.muted = true;
grunt.config.init();
grunt.config('usemin', {
js: 'misc.js',
options: {
assetsDirs: 'images',
patterns: {
js: [
[/referenceToImage = '([^\']+)'/, 'Replacing image']
]
}
}
});
grunt.file.copy(path.join(__dirname, 'fixtures/misc.js'), 'misc.js');
grunt.task.run('usemin');
grunt.task.start();
var changed = grunt.file.read('misc.js');
// Check replace has performed its duty
assert.ok(changed.match(/referenceToImage = 'image\.2132\.png'/));
});
我希望有所帮助!