我是 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 时,我收到很多警告,告诉我找不到图像和字体(它在错误的目录中查找),但洗完后一切正常......
谁能给我一些指导,让我知道为什么会出现这种差异?