Whitenoiseを使用するDajngoにおいて、static タグがサーバーエラーを発生させる問題について
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
では問題は発生しないので、whitenoise
やgunicorn
の設定が原因ではないかなと思ってます。
主に下記の構成で動かしているのですが、
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'