Asset Pipelineで特定のファイルを除外する「stub」ディレクティブ

sprocketsというgemが担っている部分なのでsprocketsのstubディレクティブの説明になる。
stubディレクティブはsprockets v2.2.0から実装された機能。

Railsだと下記の様な記述があって/app/assets/javascripts/以下のファイルを全てコンパイルして使用するようになっている。

//= require_tree .

今回html5shiv-printshiv.jsを特定のブラウザの時だけ読み込みたいがjsは/app/assets/javascripts/にまとめて入れておきたいという時に使った。

//= stub html5shiv-printshiv
//= require_tree .

ただstubディレクティブに記載するとprecompile対象から外れてしまいjavascript_include_tagで呼べなくなるのでconfig/initializers/assets.rbに追加しておく。

Rails.application.config.assets.precompile += %w( html5shiv-printshiv.js )