以前の記事のようにApacheでDjangoのページを表示しようとするとレイアウトが崩れることがあります。
原因はデフォルトのスタイルシート、staticディレクトリが読み込めないということです。
本来、このような型で表示されるべきところが
このようにレイアウトの崩れたページになります。
まずはデフォルトのテンプレートが格納されているディレクトリを調べます
$ python3 -c "import django; print(django.__path__)"
['/usr/local/lib/python3.5/dist-packages/django']
そのままではapache用に/usr/以下のデフォルトのディレクトリの権限を変更しないといけないので、必要なファイルを含むディレクトリ(今回は求められているstatic/adminのスタイルシート)をプロジェクトのディレクトリに全コピーします。
sudo cp -r /usr/local/lib/python3.5/dist-packages/django/contrib/admin/static/admin/ /home/django/draemon/draemon/static/
つまり、
/usr/local/lib/python3.5/dist-packages/django/contrib/admin/static/admin/
以下のものを全て
/home/django/draemon/draemon/static/admin/
として使います。
コピー先にApache2のサイト.confでAliasを設定し、権限を与えます。
/etc/apache2 $ sudo nano sites-available/draemon.conf
下記を追加
Alias /static/admin/ /home/django/draemon/draemon/static/admin/
<Directory /home/django/draemon/draemon/static>
Require all granted
</Directory>
これで/static/admin/にアクセスしてきたものがプロジェクト内にコピーしたファイルにアクセス出来ることになります。
コピーなのでスタイルシートも好きに弄って大丈夫です。
ディレクトリの場所はややこしいですが、[プロジェクトディレクトリ]/[プロジェクト名ディレクトリ]/staticです。
解らなければApacheのエラーログを見れば良いです。
client denied by server configuration: /home/django/draemon/draemon/static,
と出ていますのでここのstaticディレクトリが読めていないんだなーということが解ります。
次回
<参考サイト>