🟡
ActionController::RoutingError (No route matches [GET] "/dist/img/~
今回クリアに時間がかかったエラーについて
Started GET "/dist/img/AdminLTELogo.png" for ::1 at 2023-10-03 20:52:46 +0900
ActionController::RoutingError (No route matches [GET] "/dist/img/XXX.png"):
上記のエラーが現れました。
結論
- 画像を保存するディレクトリが間違っていた。
解説
- エラーをChatGPTに投げてみました。
- このエラーメッセージは、Railsアプリケーションが指定されたURLに対するルート(ルーティング情報)を見つけられないことを示しています。
- 具体的には、GETリクエストが "/dist/img/XXX.png" というURLに送信されたが、そのURLに対するルーティングが設定されていないため、アプリケーションが対応するコントローラーアクションを見つけることができない、というエラーです。
私の場合
- アセットの配置場所が正しくない
: "/dist/img/XXX.png" ファイルが正しいディレクトリに存在しないため、アセットへのアクセスができませんでした。
/dist/はどこ?
保存するディレクトリが違うことはわかりました。
しかし、/dist/というディレクトリが見つかりませんでした。
-
ChatGPTに聞いてみました。
-
一般的なディレクトリ構造の例を以下に示しますが、具体的なアプリケーションによって異なる場所に配置されている可能性があります。
-
app/assets/imagesディレクトリ
: 一般的なRailsアプリケーションの場合、アセットファイル(画像、スタイルシート、JavaScriptなど)は "app/assets" ディレクトリ内に配置されます。したがって、"/app/assets/images" ディレクトリに "XXX.png" ファイルが存在するか確認してください。 -
vendor/assets/imagesディレクトリ
: サードパーティのテーマやライブラリは通常、"vendor/assets" ディレクトリ内に配置されます。したがって、"/vendor/assets/images" ディレクトリに "XXX.png" ファイルが存在するか確認してください。 -
publicディレクトリ
: 一部のアプリケーションでは、静的なファイル(アセット)は "public" ディレクトリ内に配置されます。したがって、"/public/dist/img/XXX.png" にファイルが存在するか確認してください。
私の場合は、3つ目のpublicディレクトリに/dist/img/
ディレクトリを作成することで解決できました。
Discussion