1

我是 Grunt 的新手——到目前为止很喜欢它(再见 Codekit)——但我遇到了一个问题,即任何指南针 url 帮助程序(image-url()、font-url())的输出都包含不正确的路径。这是我的 gruntfile;

module.exports = function (grunt) {
    grunt.initConfig(
        {
            pkg        : grunt.file.readJSON('package.json'),
            compass    : {
                dev : {
                    options : {
                        httpPath       : '/',
                        sassDir        : 'scss/scss',
                        cssDir         : 'css/compiled',
                        imagesDir      : 'images',
                        javascriptsDir : 'js',
                        fontsDir       : 'fonts',
                        outputStyle    : 'nested',
                        relativeAssets : true
                    }
                }
            },
            cssmin     : {
                dev : {
                    files : {
                        'css/min/ctips-global.min.css' : [
                            'css/compiled/global/base.css',
                            'css/compiled/global/header.css',
                            'css/compiled/global/footer.css',
                            'css/compiled/global/navigation.css',
                            'css/compiled/global/entry-content.css',
                            'css/compiled/global/widgets.css',
                            'css/compiled/global/animations.css'
                        ]
                    }
                }
            },
            uglify     : {
                options : {
                    mangle : false
                },
                dev     : {
                    files : {
                        'js/min/modernizr-latest.min.js' : ['js/vendor/modernizr/modernizr-latest.js']
                    }
                }
            },
            watch      : {
                css : {
                    files   : ['scss/scss/**', 'Gruntfile.js'],
                    tasks   : ['compass', 'cssmin'],
                    options : {
                        nospawn : true
                    }
                },
                js  : {
                    files : ['Gruntfile.js'],
                    tasks : ['uglify']
                }
            },
            concurrent : {
                options : {
                    logConcurrentOutput : true
                },
                dev     : {
                    tasks : ['watch:css', 'watch:js']
                }
            }
        });
    grunt.loadNpmTasks('grunt-concurrent');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-contrib-cssmin');
    grunt.loadNpmTasks('grunt-contrib-compass');
    grunt.registerTask('default', ['compass', 'cssmin', 'uglify']);
    grunt.registerTask('dev', ['concurrent:dev']);
};

当我运行“grunt dev”时,Grunt 运行时没有任何警告——表明它可以找到所有必要的资源——但是 compass url helpers 的输出总是缺少 gruntfile 所在的目录。

当我按如下方式添加目录时...

...
options : {
                        httpPath       : '/',
                        sassDir        : 'scss/scss',
                        cssDir         : 'css/compiled',
                        imagesDir      : 'mydirectory/images',
                        javascriptsDir : 'js',
                        fontsDir       : 'mydirectory/fonts',
                        outputStyle    : 'nested',
                        relativeAssets : true
                    }
...

...结果输出是正确的,但 grunt 会抛出一系列警告说它找不到资源。错误示例如下;

WARNING: 'Brown-Regular.eot' was not found (or cannot be read) in /Applications/MAMP/htdocs/website.com.au/website/content/themes/mydirectory/mydirectory/fonts

因此,compass 认为 httpPath 的位置与 Grunt 认为它在我的项目中的位置之间似乎存在一些差异,但我不确定如何解决这个问题。

目前,当我运行 Compass 时,我收到很多警告,告诉我找不到图像和字体(它在错误的目录中查找),但洗完后一切正常......

谁能给我一些指导,让我知道为什么会出现这种差异?

4

0 回答 0