Djangoの設定でDEBUG = Falseをセットした時に、テンプレートファイル内のstaticタグがServerError(500)を発生させてしまいます。
DEBUG = Trueの時には発生しません。また、下記の記述に変更しても問題なく動作します(組み込みの/adminが動かないのですが…)

<!-- Error -->
<link rel="stylesheet" href="{% static 'bootstrap-4/css/bootstrap.min.css' %}">
<!-- Not error -->
<link rel="stylesheet" href="/static/bootstrap-4/css/bootstrap.min.css">

manage.py runserverでは問題は発生しないので、whitenoisegunicornの設定が原因ではないかなと思ってます。

主に下記の構成で動かしているのですが、

  • Python 3.7.0

  • Django 2.1.3

  • whitenoise 4.1

  • gunicorn 19.9.0

解決策を教えてください。

requirements.txt

dj-database-url==0.5.0
Django==2.1.3
django-bootstrap4==0.0.7
django-cleanup==2.1.0
django-debug-toolbar==1.10.1
django-extended-choices==1.3
django-extensions==2.1.3
django-heroku==0.3.1
flake8==3.6.0
future==0.17.1
gunicorn==19.9.0
mccabe==0.6.1
Pillow==5.3.0
psycopg2==2.7.5
pycodestyle==2.4.0
pyflakes==2.0.0
pytz==2018.7
six==1.11.0
sqlparse==0.2.4
whitenoise==4.1

staticfiles in settings.py

STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

heroku run settings

import django_heroku
from .settings import *

DEBUG = False
django_heroku.settings(locals())

Directory

- project_root
  - config
    - settings.py
    - heroku_settings.py
  - static
    - common_static_files

Error message

File "/app/.heroku/python/lib/python3.7/site-packages/django/contrib/staticfiles/storage.py", line 419, in stored_name
raise ValueError("Missing staticfiles manifest entry for '%s'" % clean_name)
ValueError: Missing staticfiles manifest entry for 'bootstrap-4/css/bootstrap.min.css'