#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 были в основном одинаковыми… Большое спасибо за помощь!