結論から言うと、再起動しただけです。
わざわざ投稿するほどのことでもないかもしれませんが、案外こういうところでハマることも多いのではないかと思ったので。
状況
djangoで、myblogapp
というプロジェクト内でposts
というアプリを作っていました。
この時にstatic
ファイルを新しく追加して、画像を読み込ませようとしたときのことです。
myblogapp
└posts
├ templates
| └ posts
| └ index.html
|
├ static ⏋
| └ posts |←ここを作って
| └ home.html ⏌
|
|
(views.py などその他は省略)
index.html
の中で
{% load static %}
<img src="{% static 'posts/home.jpg' %}" alt="home image">
と記述して画像を表示しようとした時のことです。
起こった問題
正しく指定したにも関わらず、画像が表示されずに
画像がないことを表すマークと「home image」という文字が表示されるだけで、
正しく画像が読み込まれませんでした。
djangoを起動しているシェル上の表示を見ると
[(日時)] "GET /static/posts/home.jpg HTTP/1.1" 404 1668
と表示されており、404を返していることから
ファイルの存在が認識されていないことが分かります。
解決策
一度djangoのサーバーを止めてから、再度python manage.py runserver
を実行したら普通に読み込めました。
(正しくは、一度サーバーを止めてpython manage.py findstatic .
を実行し
static
ディレクトリがちゃんと認識されているかを確認してから
python manage.py runserver
を実行しました。)
どんなプログラムでも、
うまく動かないときはとりあえず再起動した方が良いということを
改めて実感しました...