Использование: Python 3.7 и Django 2.1.4
Я работаю над учебными пособиями в книге Django для начинающих Уильяма С. Винсента.Я нахожусь в части "Приложения к блогу" книги, и я следовал его инструкциям к письму.Однако я не могу заставить сервер dev обслуживать мой статический файл CSS, независимо от того, что я делаю.
Мой исходный код можно найти здесь.
IЯ использую manage.py runserver
для запуска демонстрационного сервера разработки для локального тестирования.
Вот мое дерево каталогов:
./
├── blog
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── blog_project
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── db.sqlite3
├── manage.py
├── Pipfile
├── Pipfile.lock
├── static
│ └── css
│ └── base.css
└── templates
├── base.html
└── home.html
Первоначально я обновил blog_project/settings.py
этой строкой:
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
и я помещаю {% load static %}
в начало моего templates/base.html
файла, а также добавляю <link href="{% static 'css/base.css' %}" rel="stylesheet">
в раздел <head> ... </head>
.
После записи файла static/css/base.css
,это должно было сработать.Но это не так.Я исследовал форумы и переполнение стека и увидел людей, которые советуют добавлять статические каталоги в файл blog_project/settings.py
, поэтому я обновил этот файл, добавив следующее:
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.1/howto/static-files/
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICTILES_DIRS = [
STATIC_ROOT,
]
Затем я обновил blog_project/urls.py
файла, добавив два новых импорта:
from django.conf.urls.static import static
from django.conf import settings
и следующую строку:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Но даже это не сработало.
Вы можете проверить мой settings.py , urls.py и base.html , чтобы увидеть, о чем я говорю.
Я ожидал manage.py runserver
для размещения статических файлов, но это не так.Когда я попытался загрузить файл CSS напрямую, я получил ошибку 404.