今回、Djangoの公開環境で画像を表示してみたので投稿します。
プロジェクト名直下(managa.pyと同じディレクトリ)にstaticディレクトリ作成します。
settings.pyに以下の行を追加します。
#プロジェクト名/settings.py
import os
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
VPSの/etc/apache2/apache2.confの以下の部分を変更します。:set numberで番号を表示すると232行目辺りかと思われます。黄色の部分はすでに変更済みかも知れません。
#/etc/apache2/apache2.conf
WSGIScriptAlias / /home/hogehoge
/プロジェクト名
/プロジェクト名
/wsgi.py
WSGIPythonPath /home/hogehoge
/プロジェクト名
<Directory /home/hogehoge
/プロジェクト名
/static
> # 公開環境で画像を表示する設定
Require all granted
</Directory>
<Directory /home/hogehoge
/プロジェクト名
/プロジェクト名
>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
vim /etc/apache2/apache2.confを実行してiキーでinsertモードにして修正します。修正が終わったらescキーを押してinsertモードを抜けます。:wq!でvimから抜けます。(:wqでもいいのですがエラーが出る場合があります。)
VPSのターミナルでpython manage.py collectstaticを実行します。
#ターミナル
python manage.py collectstatic
staticディレクトリ内にadminというディレクトリが作成されます。
staticディレクトリ内(adminと同じ階層)にアプリ名と同じ名前のディレクトリを作成し、その中に画像ファイルを配置します。
ターミナルで「mkdir アプリ名」を実行してディレクトリを作成しFileZillaなどのFTPソフトで画像ファイルを転送する形になると思います。
テンプレートファイルを以下の様に作成します。
#templates/アプリ名/index.html
{% load static %}
<img src="{% static 'download.jpg' %}">
imgタグにstyle属性やBootstrapのclass属性を追加することでcssやレスポンシブデザインに対応させることもできます。
ターミナルでsudo service apache2 restartを実行すると画像が表示できたのではないかと思います。
以上です。
分かりにくい部分などありましたらお知らせ頂けると助かります。お知らせいただいた内容は公開されることはありません。どの記事から投稿されたかは分かるようにしています。