ローカル環境上のDjango で python manage.py runserver
したら,ログにこんなメッセージが
[22/Jul/2019 02:44:16] "GET / HTTP/1.1" 200 5895 Internal Server Error: /favicon.ico Traceback (most recent call last): File "/home/jun/.local/share/virtualenvs/TobaExPy-uha27gFP/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner response = get_response(request) File "/home/jun/.local/share/virtualenvs/TobaExPy-uha27gFP/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response response = self.process_exception_by_middleware(e, request) File "/home/jun/.local/share/virtualenvs/TobaExPy-uha27gFP/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/jun/Desktop/work_space/TobaExPy/Toba/views.py", line 30, in detail place = Place.objects.get(place_id=place_id) File "/home/jun/.local/share/virtualenvs/TobaExPy-uha27gFP/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) File "/home/jun/.local/share/virtualenvs/TobaExPy-uha27gFP/lib/python3.6/site-packages/django/db/models/query.py", line 408, in get self.model._meta.object_name Toba.models.Place.DoesNotExist: Place matching query does not exist. [22/Jul/2019 02:44:16] "GET /favicon.ico HTTP/1.1" 500 78881
大事なのは Internal Server Error: /favicon.ico と GET /favicon.ico HTTP/1.1" 500 78881 の部分.
ようは favicon.ico が無いというだけなのだが,これを直すのが少し時間がかかったのでここに書いておく.
プロジェクトのディレクトリ構造(修正後)
├── app │ ├── __init__.py │ ├── admin.py │ ├── apis.py │ ├── apps.py │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ ├── models.py │ ├── tests.py │ ├── urls.py │ └── views.py ├── config │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── db.sqlite3 ├── static │ ├── css │ │ └── index.css │ └── img │ └── favicon.ico └── templates └── app ├── base.html └── index.html
直し方
/static/img/favicon.ico
を設置.
/config/settings.py
に
STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), ]
を追記.
/templates/app/base.html
の <head> 内に
<link rel="icon" href="{% static 'img/favicon.ico' %}">
を書き込む.
各種ファイル名等はプロジェクトの構成によって柔軟に対応してもらえればいいと思います.