Как связать HTML и CSS файл с помощью Django?
Я новичок в изучении Django. Я пытался просто связать HTML и CSS файлы в Django, ссылаясь на некоторые сайты и видео, но кажется, что CSS файл не включен. Хотя я пробовал несколько раз, я не получаю цвет фона, который я поместил в CSS файл. CSS файл сохранен в static/css/style.css
body{
background-color: violet;
}
HTML файл сохранен в templates/bg.html
{%load static%}
<!<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title> BG </title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="{% static 'style.css' %}">
</head>
<body>
<h2 class="bg_class">BG Colour</h2>
<p>
Background Color is to be changed.<br>
</p>
<script src="" async defer></script>
</body>
</html>
Также я настроил статический файл в файле settings.py.
STATIC_URL = '/static/'
STATIC_DIRS=[
os.path.join(BASE_DIR,'static')
]
Вместо "фиолетового" фона я все еще получаю "белый" фон. Пожалуйста, помогите мне исправить это.
Вы обслуживаете свои статические файлы?
Если вы используете manage.py runserver
, вы можете добавить это в конец ваших проектов urls.py
:
from django.conf import settings
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
if settings.DEBUG:
urlpatterns += staticfiles_urlpatterns()
например, здесь: https://github.com/almazkun/durls/blob/4b17a1b698430b442fc1e74e5b24f792f57cb17e/settings/urls.py#L28 или здесь: Как вы обслуживаете статические файлы при использовании сервера разработки django runserver?
Обратите внимание, что Django
не обслуживает файлы static
и media
самостоятельно. Вам нужно будет настроить их отдельно, используя такие вещи, как nginx
или whitenoise
.
Для управления статическим файлом. Сначала вам необходимо знать development
и production
настройки.
- В разработке необходимо установить
DEBUG=True
вsettings.py
.
- В производстве необходимо установить
DEBUG=False
вsettings.py
Развитие
Для обслуживания статического файла в проекте разработки. Вам нужно сделать две вещи .
Первый - изменение файла settings.py
. Добавлен этот пример кода.
STATIC_URL = '/static/'
if DEBUG:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
'/static/',
]
else:
STATIC_ROOT = os.path.join(BASE_DIR, "static")
Второе изменение - urls.py
файл. Добавьте этот пример кода-
## import this at the top
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
## bottom of the file `urls.py`
if settings.DEBUG:
urlpatterns += staticfiles_urlpatterns()
Вы можете проверить этот проект django. как вы можете изменить свой код Repo Link.
Производство
Для производственной сборки вы должны следовать этому контрольному списку.
После выполнения контрольного списка вы можете обслуживать статическое содержимое с помощью nginx
веб-сервера. Или вы можете использовать пакет whitenoise
python.
- Настройка статических файлов для работы с NGINX или Средний блог (Настройка статических файлов Django с Nginx) .
- Использование WhiteNoise с Django.
Думаю, это поможет вам в дальнейшей работе.