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']
...
Вернуться на верх