СТАТИЧЕСКИЕ ФАЙЛЫ (CSS НЕ НАЙДЕН) С DJANGO

#css #django

#css #django

Вопрос:

Я использую Django для создания панели мониторинга. Структура моего проекта приведена ниже :

 │   db.sqlite3
│   manage.py
│
├───dashboard
│      asgi.py
│      settings.py
│      urls.py
│      wsgi.py
│      __init__.py
│   
│
│
├───projects
│      admin.py
│      apps.py
│      models.py
│      tests.py
│      views.py
│      __init__.py
│ 
│
├───static
│   ├───css
│   │       main.css
│   │       sb-admin.css
│   │       sb-admin.min.css
│   │
│   ├───js
│   │ 
│   │
│   ├───media
│   │
│   ├───scss
│   │
│   └───vendor
│
├───upload_log
│   │   admin.py
│   │   apps.py
│   │   forms.py
│   │   models.py
│   │   tests.py
│   │   urls.py
│   │   views.py
│   └───__init__.py
│   
└───templates
       about.html
       base.html
       basedraft.html
       home.html
       index.html
       navigationbar.html
       upload_log.html
  

`
Мои настройки, как показано ниже :

 STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_cdn') #add


MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static/media/') #static/ add


STATIC_DIRS = [
    os.path.join(BASE_DIR, "static"),
]
  

Моя проблема в том, что всякий раз, когда я пытаюсь использовать css в своем шаблоне, я получаю сообщение об ошибке «http://localhost:8000/static/css/main.css net::ОШИБКА_АБОРТИРОВАНА 404 (не найдена)».

Есть ли что-то, чего я не понял, используя статические файлы? Я просмотрел документацию и вопросы по stackoverflow, но мне не удалось решить проблему. Однако мое приложение upload_log фактически находит свой путь через static / media / log всякий раз, когда я использую файл .csv для создания моделей…

У меня был ниже шаблон html :

 {% load static %}
<!DOCTYPE html>

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS and customized CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
    <link rel="stylesheet" type="text/css" href="{% static 'css/main.css' %}">
    <title>DASHBOARD</title>
  </head>

  <body>
    {% include 'navigationbar.html' %}
    <div>
      {% block content %}{% endblock %}
    </div>
  </body>
</html>
  

Комментарии:

1. можете ли вы добавить свой пост по вашему шаблону,

2. Я просто редактирую сообщение с помощью одного из шаблонов, в котором я пытаюсь реализовать css

Ответ №1:

Вы не определили STATICFILES_DIRS .

Определения в моем проекте следующие:

 STATICFILES_DIRS = (
 os.path.join(BASE_DIR, 'static'),
)

STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static')
STATIC_URL = '/static/'
  

В документе Django говорится

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

 STATICFILES_DIRS = [
BASE_DIR / "static",
'/var/www/static/',
]
  

Управление статическими файлами

Комментарии:

1. Хорошо, добавление STATICFILES_DIRS устранило проблему. Я просто подумал, что STATIC_DIRS и STATIC_DIREFILES были в основном одинаковыми… Большое спасибо за помощь!

2. Приветствую вас, Staticfiles — это общее имя, где есть статические файлы.

Ответ №2:

Ваш проект не видит ваш статический файл. Если вы настроите свой settings.py файл, я думаю, ты можешь решить свою проблему.

Вы можете попробовать следующий код:

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

Проверьте область TEMPLATES = [..], потому что ‘КАТАЛОГИ’ должны содержать путь к шаблону.

 TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
  

]

Комментарии:

1. Хорошо, добавление STATICFILES_DIRS устранило проблему. Я просто подумал, что STATIC_DIRS и STATIC_DIREFILES были в основном одинаковыми… Большое спасибо за помощь!