Sprockets::ArgumentError at / link_tree argument must be a directory


初めに

今回は上記の写真のエラーについて、解説をしていこうと思います。
他の人のリポジトリから、railsのプロジェクトを引っ張ってきた際に出てきたエラーになります。

原因

まずSporoketsに対してエラーが吐かれているので、画像の読み込みらへんでエラーが吐かれているのかなと推測しました。そこで、rails assets:precompileを実行しエラーを確認しました。
そこで出力されたのが、Sprockets::ArgumentError: link_tree argument must be a directory /Users/hibiki/Desktop/Submission2-bookers_app/app/assets/config/manifest.js:1 Tasks: TOP => assets:precompile (See full trace by running task with --trace)という内容のエラーが出力されました。
そこで、manifest.jsを確認してみると

## manifest.js

//= link_tree ../images
//= link_directory ../stylesheets .css

このように記述されており、このコンパイルした際にこの一行目に対してエラーが吐かれていたので、みてみると../imagesでimagesのフォルダを探しているのがわかります。
そこで、manifest.jsの一つ上の階層をみてみると

このようなファイル構成になっており、link_treeで指定されていたimagesのフォルダがないように見えます。ここで、imagesのフォルダが消えてしまっていることに気づきます。
そのため今回の原因としては、assets配下にimagesのフォルダがないことが原因でした。

解決方法

imagesnのフォルダを作成してあげれば解決とのことなので、imagesのフォルダを作成してあげましょう。

## assetsの配下にimagesのフォルダを作成したいので移動する
$ cd app/assets

## フォルダを作成する
$ mkdir images

## gitで管理するために、imagesフォルダの中に.keepのファイルを作成する
$ cd images
$ touch .keep

最後に

なかなかお目にかかれないエラーになるかと思いますので、このエラー記事を参考記事にされる方は多くないと思いますが、もし一人でもこのエラー記事が参考になれば幸いです。