11
7

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 5 years have passed since last update.

【django】プロジェクト内のcssが読み込めない

Posted at

事象

ローカル開発環境にてDjangoの管理サイトにアクセスしましたが、
以下のように、管理サイトでcss(静的ファイル)が読み込めませんでした。

django_admin_no_css_login.png
django_admin_no_css.png


前提条件

Python 3.7.4
Django 2.2.6
virtualenv 16.1.0

解析

HTTPログ

$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
November 02, 2019 - 16:45:33
Django version 2.2.6, using settings 'studysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[02/Nov/2019 16:24:55] "GET /admin/ HTTP/1.1" 200 3080
[02/Nov/2019 16:24:55] "GET /static/admin/css/responsive.css HTTP/1.1" 404 77
[02/Nov/2019 16:24:55] "GET /static/admin/css/dashboard.css HTTP/1.1" 404 77
[02/Nov/2019 16:24:55] "GET /static/admin/css/base.css HTTP/1.1" 404 77

どうやらcssが読み込めてないようです。
原因を探るべく、settings.pyを確認してみた。

settings.py
# snip

DEBUG = False
ALLOWED_HOSTS = ['localhost','0.0.0.0']

# snip

上記のDEBUG = Falseが怪しかったのでTrueにすると、cssが読み込めるようになりました。
DEBUG = Falseは本番環境が想定されており、静的ファイルはnginxなどのwebサーバから読み込む仕様になっているようです。

対応策

cssが読み込まれるためには、以下の2つのうちどちらかの対応が必要です。

1. settings.pyでDEBUG = Trueにする

Trueにするとプロジェクト内のcssも読み込まれます。

2. python manage.py runserver --insecureコマンドを使う

--insecureオプションを付けると、プロジェクト内のcssが読み込まれます。

おまけ

settings.py
DEBUG = False
ALLOWED_HOSTS = ['*']

この設定ではcssは適用されませんでした。
ALLOWED_HOSTSを任意にしただけではcssは読み込めないようです。

11
7
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
11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?