0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Djangoでstaticフォルダから画像を読み込めなかった時の解決策

Posted at

結論から言うと、再起動しただけです。
わざわざ投稿するほどのことでもないかもしれませんが、案外こういうところでハマることも多いのではないかと思ったので。

状況

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を実行しました。)

どんなプログラムでも、
うまく動かないときはとりあえず再起動した方が良いということを
改めて実感しました...

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?