Gruntjs 在html文件中替换图像路径,但在js文件中不替换

Gruntjs 在html文件中替换图像路径,但在js文件中不替换,gruntjs,grunt-usemin,Gruntjs,Grunt Usemin,我对Grunt和所有的任务都是陌生的,所以在这一点上请容忍我。我正在开发一个AngularJS应用程序,最初是通过Yeoman创建的。因为有很多视图,所以我认为最好将所有视图都包含在templatecache中。所以我安装了html2js,并根据他们的GitHub阅读配置了它。除了一件事,它几乎工作得很好。我的模板包含一些对本地图像的引用。运行grunt build时,revfile会更改所有这些映像的名称。查看包含所有模板的dist/views文件夹,我可以看到路径是正确的,路径已替换为新路径

我对Grunt和所有的任务都是陌生的,所以在这一点上请容忍我。我正在开发一个AngularJS应用程序,最初是通过Yeoman创建的。因为有很多视图,所以我认为最好将所有视图都包含在templatecache中。所以我安装了html2js,并根据他们的GitHub阅读配置了它。除了一件事,它几乎工作得很好。我的模板包含一些对本地图像的引用。运行grunt build时,revfile会更改所有这些映像的名称。查看包含所有模板的dist/views文件夹,我可以看到路径是正确的,路径已替换为新路径。但是,这些对路径的更改并没有进入html2js生成的js文件中

如何让Grunt也正确地替换生成的html2js文件中的路径?下面是我认为相关的grunt initConfig部分

filerev: {
    dist: {
        src: [
            '<%= yeoman.dist %>/scripts/{,*/}*.js',
            '<%= yeoman.dist %>/styles/{,*/}*.css',
            '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}',
            '<%= yeoman.dist %>/styles/fonts/*'
        ]
    }
},

useminPrepare: {
    html: '<%= yeoman.app %>/index.html',
    options: {
        dest: '<%= yeoman.dist %>',
        flow: {
            html: {
                steps: {
                    js: ['concat', 'uglifyjs'],
                    css: ['cssmin']
                },
                post: {}
            }
        }
    }
},

// Performs rewrites based on filerev and the useminPrepare configuration
usemin: {
    html: ['<%= yeoman.dist %>/{,*/}*.html'],
    css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
    options: {
        assetsDirs: ['<%= yeoman.dist %>', '<%= yeoman.dist %>/images']
    }
},
****************************
grunt.registerTask('build', [
    'clean:dist',
    'wiredep',
    'useminPrepare',
    'concurrent:dist',
    'autoprefixer',
    'html2js:main',
    'concat',
    'ngAnnotate',
    'copy:dist',
    'cdnify',
    'cssmin',
    'uglify',
    'filerev',
    'usemin',
    'htmlmin'
]);

我可以建议你改用吗?它的设计正是为了将视图插入$templateCache

我在相对路径方面从未遇到过任何问题


你甚至可以将它与https://github.com/mgcrea/grunt-nginclude 到内联部分。

感谢您的回复!这可能会奏效。然而,这实际上并不是问题的解决方案,而是一种变通方法。另外,我不太确定这是否是html2js的问题,而是文件修改任务的问题。