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

时间:2015-02-26 07:55:51

标签: gruntjs grunt-usemin

我是Grunt的新手,所有的任务都要在这个问题上承担。我正在开发一个AngularJS应用程序,我最初是通过Yeoman创建的。由于很多观点,我认为将所有视图都包含在templatecache中是个好主意。所以我安装了html2js并根据他们的GitHub读取进行配置。它的工作几乎完美,除了一件事。我的模板包含对本地图像的一些引用。运行grunt build时,所有这些图片的名称都会被revfile更改。查看包含所有模板的dist/views文件夹,我可以看到路径是正确的(路径已被新的路径替换)。但是,对路径的这些更改不会使其成为html2js生成的js文件。

如何让Grunt在生成的html2js js文件中正确替换路径?以下是我认为相关的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'
]);

1 个答案:

答案 0 :(得分:0)

我建议你改用grunt-angular-templates吗?它的设计正是为了将视图插入$templateCache

我对相对路径没有任何问题。

您甚至可以将其与https://github.com/mgcrea/grunt-nginclude配对以内联&#34;部分&#34;。