Whitenoise не работает при DEBUG = FALSE - Django - Хостинг статических файлов
Я запускаю веб-сайт Django, и он скоро будет запущен в производство. Сейчас я нахожусь на той стадии, когда мне нужно установить DEBUG = False в моем файле settings.py. Я получаю типичные 500 ошибок, потому что у меня есть статические файлы, которые размещаются локально. Я работаю над тем, чтобы заставить Whitenoise работать для размещения моих статических файлов, чтобы я мог двигаться дальше с DEBUG = False. Я прослушал много документации и много руководств и думаю, что все мои конфигурации настроены, но я все еще получаю ту же ошибку. При DEBUG = False я все еще получаю 500 ошибок на моих производственных страницах, которые содержат статические файлы. Также, когда я проверяю любые статические файлы на странице, когда DEBUG = True, URL не меняется вообще. Я размещаю всю свою конфигурацию ниже в надежде, что есть простая ошибка, которую я сделал, и которую я постоянно пропускал, но Whitenoise, кажется, не работает, и кажется, что нет никаких отличий от того, как это было раньше, теперь, когда Whitenoise "реализован".
Я запустил python manage.py collect static
Я выполнил pip install whitenoise
Я новичок в белом шуме, поэтому я просто основываю свои знания на учебниках и документации, которую я нашел.
settings.py
Пример загрузки статики в HTML файл, который продолжает получать 500 ошибку в продакшене
{{ load static from staticfiles }}
Заранее спасибо!!!
Попробуйте это:
#in Template
{%load static%}
#в settings.py
если имя вашей директории статических файлов не 'static', то просто замените 'static' в приведенном ниже коде на имя вашей директории статических файлов.
if DEBUG:
STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static')]
else:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
ЗАМЕЧАНИЕ: Закомментируйте STATICFILES_DIRS и используйте STATIC_ROOT при выполнении collectstatic команды.
Всегда начинайте файл шаблона .html с {% load static %}, если вы вызываете {% static 'your_file' %} в том же файле.
Также...
При Debug = True это не имеет значения, но если вы установите значение False, то вы должны предоставить хотя бы один допустимый хост.
...
ALLOWED_HOSTS = ['your_url_comes_here.com']
...