2015-12-15 [長年日記]
tDiaryでbootstrap-sassのglyphiconを使う
まず結論から書いておくと、bootstrap-sassを導入した状態で.scssに、
$icon-font-path:'../bootstrap/';
@import 'bootstrap';
と記述することでbootstrapのglyphiconが使えるようになる。あとは適当な要素に、
span.sanchor{
@extend .glyphicons;
@extend .glyphicons-ok;
}
のようにすることで、element:beforeにアイコンが挿入される。この日記では、span.sanchorとspan.canchorにそれぞれglyphiconを設定してみた。
苦戦した記録
続き。せっかくbootstrapベースにしたので、Glyphiconsも使いたいなあということで試行錯誤した記録。 まずは素直に、scssで
@import 'bootstrap-sprockets';
したところ、asset_pathが定義されていないというエラーが出た。そこでいろいろ調べてみたんだけど、結局_bootstrap.scssでglyphiconsは読み込まれていて(@import 'bootstrap/glyphicons')、パス指定が間違っている状態だということがわかった。_bootstrap-sprockets.scssではそのパスの解決をしているだけだったので、$icon-font-pathを直接指定すればいいのかなということで、まずは現在のパスを調査。存在しない.scssをインポートしてエラーを出すとLoad pathsを表示してくれるというアホっぽい方法で'gems/bootstrap-sass-3.3.6/assets/fonts'がload pathに指定されていることがわかった*1。実際のフォントはfonts/bootstrapに存在するので、http://(server-path)/assets/bootstrap/(フォント名)に直接アクセスしてダウンロードできることを確認。
これを変数に指定して、テスト環境でglyphiconが表示されることを確認した。
$icon-font-path:'/assets/bootstrap/';
これをそのまま本番環境に適用したところ表示されない。かなりハマったけど、単純にこの日記がdiary/以下にあるからパス指定が間違っているだけだった。結局相対パス指定にすることにより、正しく表示されるようになった。
*1 https://github.com/twbs/bootstrap-sass/blob/master/lib%2Fbootstrap-sass.rb のregister_sprocketsで各パスをappend_pathしている