generator-angularを使ってAngularJSのひな形を生成し、
ビューにimgタグを書いていると、 grunt build
で画像の参照が切れました。
grunt-filerevによる名前の変更が反映されていないようです。
例えば app/views/main.html
に以下のようなタグがあったとします。
<img src="../images/sample.jpg">
ここで参照している画像が app/images/sample.jpg
にあったとすると、
grunt build
( grunt-fillerev
)で dist/images/sample01.4b20b3c2.jpg
に出力されます。
ビューは grunt-usemin
によって以下のようなタグに置き換わるべきなのですが、
置き換わっていないため、404 Not Foundとなっていました。
<img src="../images/sample01.4b20b3c2.jpg">
原因と解決策
Gruntfile.jsの先頭に、処理速度の都合上、一階層しか処理をしないと記述されているので、
app/index.html
のみが対象で、ビューとなる app/views/
以下のファイルが対象外となっていました。
というわけでGruntfile.js のuseminで対象とするhtmlのファイルを増やします。
usemin: { // html: ['<%= yeoman.dist %>/{,*/}*.html'], // generator-angularによる設定 html: ['<%= yeoman.dist %>/**/*.html'], // 再帰的に対象とする css: ['<%= yeoman.dist %>/styles/{,*/}*.css'], options: { assetsDirs: [ '<%= yeoman.dist %>', '<%= yeoman.dist %>/images', '<%= yeoman.dist %>/styles' ] } },