assets precompileで発生するエラー

背景

久々にコーダーが実装した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の組み込みを行うと忘れていることが多くて戸惑ってしまいます。知識を蓄積するために書き残していくことを続けていきたいと思います。