背景
久々にコーダーが実装したcssをRailsに組み込んだら、エラーが発生してあまりうまくいかなかったのでメモしておきます。
css内の画像指定にimage-urlを指定した場合
エラー内容
cssのbackgroundで指定されている画像はimage-url
で指定します。
1 | background: image-url("test/test.png") no-repeat; |
引数のパスはapp/assets/images/
の下から指定します。
このcssをapplication.scssで読み込むようにします。
1 | @import 'test'; |
すると、以下のようなエラーが発生しました。
1 | NoMethodError: undefined method `[]' for nil:NilClass |
原因
ファイルの拡張子をcssのままで読み込んでいたため。scssとして読み込む必要があります。
参考 : https://stackoverflow.com/questions/12313612/rake-assetsprecompile-undefined-method-for-nilnilclass
cssをimportする場合
エラー内容
上記エラーが解消されたので、これでOKと思っていたら以下のエラーが発生しました。
1 | stack level too deep |
原因
importするファイル名はアンダースコアから開始する必要があります。
1 | $ mv test.scss _test.scss |
これでエラーは解消します。
まとめ
久々にcssの組み込みを行うと忘れていることが多くて戸惑ってしまいます。知識を蓄積するために書き残していくことを続けていきたいと思います。