2015年6月14日日曜日

[Rails] font-awesome-railsとprecompileとstupid digest

アイコンでfont-awesome-railsを使っていたのだけれど、production環境にデプロイしたら、アイコンが表示されていなくて残念な感じ。

で、調べていたら、
@font-face {
  font-family: 'FontAwesome';
  src: url("/assets/fontawesome-webfont.eot?v=4.3.0");
  src: url("/assets/fontawesome-webfont.eot?#iefix&v=4.3.0") format("embedded-opentype"), url("/assets/fontawesome-webfont.woff2?v=4.3.0") format("woff2"), url("/assets/fontawesome-webfont.woff?v=4.3.0") format("woff"), url("/assets/fontawesome-webfont.ttf?v=4.3.0") format("truetype"), url("/assets/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular") format("svg");
  font-weight: normal;
  font-style: normal;
}
ファイルがprecompileされたときにdigestついて名前が変わっちゃって参照できないのが原因のようだ。

non-stupid-digest-assetsを使って、バカなdigestを付けないようにしたらちゃんとアイコンも表示されましたとさ。
# config/initializers/non_digest_assets.rb
NonStupidDigestAssets.whitelist = [/fontawesome-webfont\.(eot|svg|woff|ttf)/]



ここからは余談だけれど、やっぱり色々とやってみないとわからないことがあるので、production環境にデプロイして運用までやらんといけないなと思った次第。いつかの勉強会で知ったopensiftを使ってみたけど、nokogiriのインストールにやたら時間がかかって不安になってCtrl+Cしてしまったり、そのあと色々と頑張ってみたけど復旧できずに結局別のアプリとして作り直したりと、非常に勉強になった。ちなみにデプロイしたアプリは何と言うこともないただのrssリーダー。