Как связать 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.

Думаю, это поможет вам в дальнейшей работе.

Вернуться на верх