gruntjs-从javascript访问版本(ed)图像

gruntjs-从javascript访问版本(ed)图像,javascript,requirejs,gruntjs,Javascript,Requirejs,Gruntjs,My Gruntile.js包含一个关于图像的rev任务,witch很好: rev: { dist: { files: { src: [ '<%= yeoman.dist %>/scripts/{,*/}*.js', '<%= yeoman.dist %>/styles/{,*/}*.css', '<%= yeoman.dis

My Gruntile.js包含一个关于图像的rev任务,witch很好:

rev: {
   dist: {
        files: {
            src: [
                '<%= yeoman.dist %>/scripts/{,*/}*.js',
                '<%= yeoman.dist %>/styles/{,*/}*.css',
                '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp}',
                '<%= yeoman.dist %>/styles/fonts/{,*/}*.*'
            ]
        }
    }
},
在rev任务运行后,我如何访问图像文件,并且仍然能够在“grunt服务器”模式下访问这些文件

谢谢

Xavier

您试过使用吗? 通常情况下,您的工作是在代码中用minified/revved/替换原始文件名。。版本

usemin
通常只针对CSS和HTML文件,但我认为编辑配置也应该允许解析js文件

我不知道
backstretch
,但如果这不起作用,因为您的用户会在某个时候下载图像,一种黑客方法可能是使用
class=“special class”
在html中添加图像,这将允许使用jQuery选择图像,并执行
显示:无。这些图像将更新其源代码,然后您可以这样做:

require(['app', 'jquery', 'jqueryBackstretch'], function (app, $) {
    'use strict';

    $(function() {
        var images = [];
        $('.special-class').each(function() { 
            images.push($(this).attr('src'));
        });
        $('.stretch').backstretch(
            images,
            {duration: 4000, fade: 'slow'}
        );
    });
});

这还远远不够完美,但是如果你不能使用
usemin
,至少这应该是可行的。

我没有找到使用usemin的答案。这里似乎不是为了这个。您的解决方案最终运行良好,我只需确保图像不会被加载两次。谢谢
require(['app', 'jquery', 'jqueryBackstretch'], function (app, $) {
    'use strict';

    $(function() {
        var images = [];
        $('.special-class').each(function() { 
            images.push($(this).attr('src'));
        });
        $('.stretch').backstretch(
            images,
            {duration: 4000, fade: 'slow'}
        );
    });
});