Как загрузить файл css в html в Django - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь создать приложение Django, и я установил все настройки c, например

Settings.py

STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'CricketTeamManagement/static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

MEDIA_URL = '/media/'

URLS.py

from django.conf import  settings
from django.conf.urls.static import static
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('Management.urls'))
] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)

Я также создал папку stati c в главной папке проекта и запустил python manage.py collectstatic, он создал новую папку stati c снаружи и имеет Папка администратора в ней и вложенные папки, такие как js, css, шрифт, изображения и collectstati c собирает изображения и сохраняет в этой папке. Я вижу, что stati c файлы четко работают.

Все models.py поля изображений загружаются в папки мультимедиа, и даже это работает.

Проблема возникает здесь

Мои css файлы не принимают своих стилей и не изменяют мои html элементы. Если у меня есть приведенный ниже код в файле html, стилизация работает, и если я разделяю его на папку css и создаю файл css, удалив тег style, он не работает.

<style>
    body {
        background-color: powderblue;
      }
      h1 {
        color: blue;
      }
      p {
        color: red;
      }
</style>

когда я увидел css файл Ошибка не найдена она исправлена ​​с , чтобы html проверить css file.

Не знаете, в чем проблема. Заранее спасибо.

Обновление Формат проекта Ссылка тег в HTML

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Ссылка в вашем индексе. html сейчас относится к вашему сайту / таблице стилей. css. Django не знает, где находится этот URL, так как вы определили свой адрес c как "/ static /". Stati c, расположенный в STATIC_DIRS, будет загружен по URL-адресу yourwebsite / static / stylesheet. css. Вот почему вы получаете 404 для файла CSS.

Измените свой индекс. html, чтобы использовать Django встроенные теги шаблонов, чтобы упростить его.

{% load static %}
Some code here.....
<link rel="stylesheet" type='text/css' href="{% static 'css/stylesheet.css' %}">

Это автоматически сгенерирует правильный URL для вашего файла stati c, который должен решить проблему.

Вам не нужно запускать сбор данных stati c в разработке, поскольку сервер django будет позаботьтесь о файлах stati c. Во время производства потребуется выполнить сбор данных stati c и указать обратный прокси-сервер или тому подобное на файлы stati c.

0 голосов
/ 27 апреля 2020

вы должны связать свои css файлы таким образом в шаблонах, также команда collectstati c не требуется только на этапе производства

{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...