Django: Почему мои статические файлы не отображаются и всегда выдают ошибку 404, когда DEBUG = False? - PullRequest
0 голосов
/ 02 декабря 2018

Я работаю на своей машине с Windows, пытаюсь разработать несколько приложений для проекта под названием «портал».После работы над ним я установил DEBUG = False, и теперь все мои статические файлы выдают ошибку 404 после загрузки любой страницы.Когда я запускаю python manage.py runserver в CMD, я получаю это при загрузке страницы:

[02/Dec/2018 14:10:14] "GET /account/sign-in HTTP/1.1" 200 6249
[02/Dec/2018 14:10:14] "GET /static/fonts/fonts.css HTTP/1.1" 404 96
[02/Dec/2018 14:10:14] "GET /static/css/argon.css HTTP/1.1" 404 94
[02/Dec/2018 14:10:14] "GET /static/branding/logo.png HTTP/1.1" 404 98

Я просмотрел более 20 постов на эту тему, которые в основном были одинаковыми, и я выполнил все их шаги, напримеркак:

  • Я установил их в моем файле settings.py: STATIC_URL = '/static/', STATICFILES_DIRS = ['portal/static/'] (у меня есть статическая папка в папке, которая содержит файлы, такие как settings.py) и STATIC_ROOT = os.path.join(BASE_DIR, "static")
  • Я позвонил python manage.py collectstatic

Я даже создал новый тестовый проект Django и выполнил все эти шаги выше, и они работают для этого нового тестового проекта.Я даже удалил все файлы в __pycache__ и сбросил мои миграции и файлы базы данных.

Существуют ли другие возможные безопасные (я видел, как другие используют читы, такие как --insecure), чтобы исправить мой проект, чтобыэто может пойти в производство кроме других решений выше?

1 Ответ

0 голосов
/ 03 декабря 2018

Итак, я подробнее рассмотрел то, что Джон Клементс и другие говорили о том, как Django больше не будет обрабатывать статические файлы при DEBUG=False, и что вам нужен HTTP-веб-сервер для обслуживания этих файлов.Это на самом деле правда .Я никогда не думал, что раньше, потому что мои другие проекты сохранили свои статические файлы, но это могло быть потому, что мой браузер кэшировал эти файлы.

Вот еще один пост, подтверждающий это: Почему установка DEBUG = False приводит к сбою доступа к моим статическим файлам в django?

Вот решение для обслуживания статических файлов в зависимости от места размещения вашего кода:

Подробнее о развертывании статических файлов Django (официальныйдокументация) здесь: Развертывание статических файлов

...