При развертывании приложения django в производственной среде на сервере openlitespeed статические файлы и медиафайлы не найдены. Приложение отлично работает в среде разработки на локальном компьютере, но после его загрузки на сервер статический контент и медиафайлы недоступны.

Я обновил свой статический URL следующим образом:

STATIC_URL = '/public/static/'
STATIC_ROOT = '/home/domain.com/app/public/static

Где app – это местоположение проекта. Я получаю 404 за ошибку для всех статических и мультимедийных файлов:

Failed to load resource: the server responded with a status of 404 ()

Когда я пытаюсь collectstatic, я получаю следующую ошибку на терминале:

django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.

Перепробовал много вариантов, ни один из вариантов не сработал. Любое решение будет высоко оценено

0
Madhav Dhungana 4 Фев 2022 в 01:29

2 ответа

Вам не хватает кавычки в конце вашего кода

STATIC_ROOT = '/home/domain.com/app/public/static

Должен быть

STATIC_ROOT = '/home/domain.com/app/public/static'
0
boyenec 4 Фев 2022 в 01:48

Я предполагаю, что отсутствующий апостроф просто пропустил здесь в SO, если он работал над разработкой. Вот как вы должны обрабатывать STATIC_ROOT в Django >= 4.0:

STATIC_ROOT = BASE_DIR / 'app/public/static'

Старые версии:

STATIC_ROOT = os.path.join(BASE_DIR, 'app/public/static')
0
NixonSparrow 4 Фев 2022 в 01:58