2014-10-02 63 views
6

背景Grunt(Yeoman,Grunt-usemin,Grunt-rev):「rev'ed」字體路徑沒有反映在我的.CSS中?

我使用的Web應用約曼腳手架我的前端。 在grunt文件中,他們使用的是grunt-rev和grunt-usemin

Grunt-rev將「rev'ed」我的資產,grunt-usemin會更新資產路徑。


問題

我有我使用的是web字體。如gruntfile.js('styles/fonts /{,/}.*')中提到的,我將字體文件夾放在我的styles目錄中.Grunt服務正在正確顯示我的字體,但是在生成文件後,它不再起作用,因爲字體文件名前綴有一些怪異的亂碼字符。例如:63b122ab.fontname.ttf而不是fontname.ttf

這是用於緩存清除。 但我的.css文件沒有更新路徑來提取它。

在gruntfile.js

內我usemin塊我該怎麼辦?目前我有這個,但它不起作用。

usemin: { 
    options: { 
    assetsDirs: ['<%= config.dist %>', '<%= config.dist %>/images', '<%= config.dist %>/styles/fonts'] 
    }, 
    html: ['<%= config.dist %>/{,/}.html'], 
    css: ['<%= config.dist %>/styles/{,/}.css'] 
}, 

這是拾取一切,但不是字體。我手動創建了字體文件夾。所以我猜測gruntfile.js必須更新以反映更改。

+0

你想出了這一個嗎?我面臨同樣的問題。 – Lowkase 2014-10-16 18:40:25

+0

@Lowkase通過這個的唯一方法就是取消在grunt-rev中轉換字體的行。修改一切,但不是字體。 – Vennsoh 2014-10-16 22:29:16

+2

我也有這個問題。刪除'filerev - > dist - > srv'對象內的''<%= yeoman.dist%>/styles/fonts/*''有幫助,但那不是我想要的。有關於此的任何其他想法?我使用sass字體助手'font-url',但這也沒有幫助。 – 23tux 2014-11-06 10:40:11

回答

0

我在css文件中遇到了與grunt相同的問題。我改變了Gruntfile.js中的usemin配置,如下所示:

usemin: { 
    html: ['<%= yeoman.dist %>/<%= yeoman.client %>/{,!(bower_components)/**/}*.html'], 
    css: ['<%= yeoman.dist %>/<%= yeoman.client %>/!(bower_components){,*/}*.css'], 
    js: ['<%= yeoman.dist %>/<%= yeoman.client %>/!(bower_components){,*/}*.js'], 
    options: { 
    assetsDirs: [ 
     '<%= yeoman.dist %>/<%= yeoman.client %>', 
     '<%= yeoman.dist %>/<%= yeoman.client %>/assets/images' 
    ], 
    // This is so we update image and font references in our ng-templates 
    patterns: { 
     js: [ 
     [/(assets\/images\/.*?\.(?:gif|jpeg|jpg|png|webp|svg))/gm, 'Update the JS to reference our revved images'] 
     ], 
     css: [ 
     [/(assets\/images\/.*?\.(?:gif|jpeg|jpg|png|webp|svg))/gm, 'Update the CSS to reference our revved images'], 
     [/(assets\/fonts\/.*?\.(?:woff|ttf|svg|eot))/gm, 'Update the CSS to reference our revved fonts'] 
     ] 
    } 
    } 
}