django сервер разработки не обслуживает файлы c - PullRequest
0 голосов
/ 26 марта 2020

Тот же вопрос, что и у этого 7-летнего , но решения не помогают, плюс я использую django 3, поэтому, на мой взгляд, явно не дубликат.

Я следовал в точности Django документация о stati c файлах.

файл настроек:

STATIC_URL = '/static/'
DEBUG = True

Структура папки:

---my_project
------my_project
------app1
------static
---------css
------------mystyle.css

Шаблон :

  {% load static %}
  <link rel="stylesheet" href="{% static "css/mystle.css" %}">

При просмотре сайта я получаю 404 Not Found. Ссылка указывает на правильный каталог:

http://127.0.0.1:8000/static/css/mystyle.css

При дальнейшем поиске и просмотре документации (что, на мой взгляд, неясно) я также нашел настройку STATIC_ROOT и установил ее соответствующим образом, но это не помогло. либо помогите.

#BASE_DIR = path to project dir
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

Что я делаю не так?

1 Ответ

0 голосов
/ 26 марта 2020

Пытаясь решить эту проблему часами, а затем, когда вы нажмете «Отправить», вы найдете решение. Для меня документация django неясна и запутана, поэтому я добавляю ответ вместо того, чтобы удалять мой вопрос.

Ваш проект, вероятно, также будет иметь состояние c, которое не связано с конкретное приложение. В дополнение к использованию статического / каталога внутри ваших приложений, вы можете определить список каталогов (STATICFILES_DIRS) в вашем файле настроек, где Django также будет искать stati c файлы.

С акцентом на «может» и «также». Это означает, что этот параметр не нужен, и STATIC_URL достаточно. Но это не так. Это не требуется, иначе вы получите 404.

Это приводит к настройкам ниже:

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]
DEBUG = True

, чтобы заставить его работать.

...