Почему Django не может через nginx найти статические файлы, хотя manage.py findstatic является успешным?

#python #django #static

#python #django #статический

Вопрос:

Я развернул приложение Django через nginx, и это работало без каких-либо проблем в течение последних нескольких месяцев. Однако теперь без каких-либо изменений, о которых я знаю, Django больше не может найти статические файлы, поэтому изображения не отображаются, а на странице администратора django нет таблицы стилей.

В моем settings.py я использовал следующую настройку:

 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
...
STATIC_ROOT = os.path.join(BASE_DIR,'static/')

STATIC_URL = 'http://[ip.of.hosting.server]/[name_of_app]/static/'
 

Когда я запускаю, например manage.py findstatic --verbosity 2 img/logo.png , Django может найти файл изображения, однако на развернутом веб-сайте логотип не отображается, и я получаю 404 file not found сообщение об ошибке для изображения.

Я также попытался запустить manage.py collectstatic , однако это не добавило новых статических файлов, и файлы по-прежнему не найдены.

Как это может внезапно произойти. Я понятия не имею, к чему я мог прикоснуться, чтобы сломать

Комментарии:

1. Если вы запустите debug=false статические файлы, они будут обработаны nginx. Для этого, пожалуйста, поделитесь своим файлом sites-available/<nameOfFile> на вашем сервере nginx.

2. Это решило мою проблему! Я на самом деле «привел в порядок» местоположение, в котором nginx ищет файлы вчера. Ну, оказывается, я был немного в порядке…

3. хорошо, тогда, пожалуйста, задайте для этого вопроса ответ 🙂 наслаждайтесь кодированием!

Ответ №1:

Если вы запустите debug=false статические файлы, они будут обработаны nginx. Для этого, пожалуйста, проверьте ваши сайты-доступные / файл внутри вашего сервера nginx.