Вот как я настроил Whitenoise для обслуживания статических файлов для моего приложения. Я использую RedHat 7, но в Ubuntu все должно быть похоже. Моя версия Django - 1.11.
Обратите внимание, что работать с DEBUG = True вне вашей среды разработки небезопасно.
Сначала я настраиваю переменную среды, указывающую на расположение статическогоfiles:
export DJANGO_STATIC_ROOT=/home/<user>/<project>/staticfiles
In settings.py:
## Static files
STATIC_URL = '/static/'
if DEBUG:
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
else:
STATIC_ROOT = environ['DJANGO_STATIC_ROOT']
## Whitenoise - Insert in 2nd place after SecurityMiddleware
MIDDLEWARE_CLASSES.insert(1,'whitenoise.middleware.WhiteNoiseMiddleware')
# Add app before django.contrib.staticfiles to enable Whitenoise in development
for i, app in enumerate(INSTALLED_APPS):
if app == 'django.contrib.staticfiles':
insert_point = i
INSTALLED_APPS.insert(insert_point,'whitenoise.runserver_nostatic')
Каждый раз, когда вы развертываете приложение, обязательно запускайте команду collectstatic для обновления файлов в вашем местоположении DJANGO_STATIC_ROOT:
./manage.py collectstatic
Удачи!