2013-01-10 52 views
5

所以我一直在使用yeoman.io爲我的項目,我有我的圖片一組文件夾結構。但是當我構建它時會更改我的文件的文件名。防止yeoman.io從涅槃圖像

我甚至用:

$ yeoman build:text 

,因爲我只想再壓縮我的CSS,JS和HTML模板,但它仍然minifies圖像。 不知道如果我做錯了什麼。

編輯:

我註釋掉了IMG的所有實例gruntfile而且似乎工作,但我不認爲這就是正確的方式。

回答

20

你的意思是圖像優化或revisioning?根據自己的需要配置GruntFile.js沒有問題。它使Yeoman/Grunt非常強大,因爲它具有很強的適應性。

如果您不想要圖像優化,請刪除img任務中的配置。

// Optimizes JPGs and PNGs (with jpegtran & optipng) 
    img: { 
    }, 

如果你不想圖像文件的重命名,從rev任務刪除img行:

// renames JS/CSS to prepend a hash of their contents for easier 
// versioning 
rev: { 
    js: 'scripts/**/*.js', 
    css: 'styles/**/*.css' 
}, 
+0

非常感謝,我一直試圖禁用「rev」任務而不理解它是優化還是其他內容的一部分。它的用途究竟是什麼? –

+2

@AhmadAlfy:這是一個緩存破壞者。當你想更新你的網站時,你需要確保瀏覽器沒有使用舊版本的資源(html,js,image,...)。確保這一點的最好方法是爲資源文件添加一個隨機哈希,因此它總是唯一的。 – asgoth

0

如果刪除圖像轉速會破壞你的緩存,你應該儘量保持改變並更新你的JS文件。

嘗試更新usemin塊是這樣的:

usemin: { 
    html: ['<%= yeoman.dist %>/{,*/}*.html'], 
    css: ['<%= yeoman.dist %>/styles/{,*/}*.css'], 
    js: '<%= yeoman.dist %>/scripts/{,*/}*.js', 
    options: { 
     assetsDirs: [ 
      '<%= yeoman.dist %>', 
      '<%= yeoman.dist %>/images', 
      '<%= yeoman.dist %>/styles' 
     ], 
     patterns: { 
      js: [ 
       [/(images\/.*?\.(?:gif|jpeg|jpg|png|webp|svg))/gm, 'Update the JS to reference our revved images'] 
      ] 
     } 
    } 
} 

您應該已經usemin方法,只需添加js屬性與你的js路徑正則表達式,並添加pattern屬性。 這將替換圖像中出現的所有的JS文件與新版本的加速運轉,從而使客戶的瀏覽器不使用緩存的圖像,而不是一個新的。