Использование Django 2.2 (Ubuntu 19.04 и python3.7) и обучение добавлению некоторых CSS (и JS) в первый раз. Попытка с одним приложением, названным домашней страницей, создать визуальную домашнюю страницу с тремя страницами с некоторой статичностью.
Я получаю прерывистую ошибку css 'file not found' 404 ошибки, которые мне не удалось устранить с помощью многих решений, перечисленных в Django docs и в stackoverflow.
Я следовал структуре папок django2.2 docs с app (homepage) в static / homepage, каждая со своей папкой, а также пробовал: -
а. Перемещение папок css, js, images в web1 / static (глобальный static) и в web1 / static / homepage (без подпапок)
б. используя и настраивая STATIC_ROOT и STATIC_URL для различных настроек
с. корректировка статических тегов шаблонов с использованием вариаций для соответствия. и с полным URL / web1 / homepage / static / homepage / css без статического тега
д. с URL-адресом и без него + статический [] раздел в urls.py
е. CSS-файлы с & без загрузки статических + тегов
е. перезагрузил и очистил кеш, пробовал разные браузеры и машину.
Структура проекта: -
├── homepage
│ ├── migrations
│ │ └── __pycache__
│ ├── __pycache__
│ ├── static
│ │ ├── admin
│ │ │ ├── css
│ │ │ ├── fonts
│ │ │ ├── img
│ │ │ └── js
│ │ └── homepage
│ │ ├── css
│ │ ├── images
│ │ └── js
│ └── templates
│ └── homepage
├── ve37
│ ├── bin
│ │ └── __pycache__
│ ├── include
│ ├── lib
│ │ └── python3.7
│ │ └── site-packages
│ └── lib64 -> lib
└── web1
└── __pycache__
ключевые строки в settings.py (также пробовали только с 'homepage' в качестве последней записи.
DEBUG = True
....
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'homepage.apps.HomepageConfig',
]
...............
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
]
STATIC_URL = '/static/'
#STATIC_ROOT = os.path.join(BASE_DIR, 'homepage')
# below just for try
STATICFILES_DIRS = [os.path.join(STATIC_URL, 'homepage'),]
глава дома.html
{% load static %}
<!DOCTYPE HTML>
<!--# concept from templated AB -->
<html>
<head>
<title>Etoile Grill</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<link href='http://fonts.googleapis.com/css?family=Questrial' rel='stylesheet' type='text/css' />
<!--[if lte IE 8]><script src="{% static 'homepage/js/html5shiv.js' %}"></script><![endif]-->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="{% static 'homepage/js/skel.min.js' %}"></script>
<script src="{% static 'homepage/js/skel-panels.min.js' %}"></script>
<script src="{% static 'homepage/js/init.js' %}"></script>
<link href="{% static 'homepage/css/style.css' %}" rel="stylesheet" type="text/css"/>
<link href="{% static 'homepage/css/skel-noscript.css' %}" rel="stylesheet" type="text/css" />
<link href="{% static 'homepage/css/style-desktop.css' %}" rel="stylesheet" type="text/css" />
<!--[if lte IE 8]><link href="{% static 'homepage/css/ie/v8.css' %}" rel="stylesheet" type="text/css"><![endif]-->
<!--[if lte IE 9]><link href="{% static 'homepage/css/ie/v9.css' %}" rel="stylesheet" type="text/css" ><![endif]-->
</head>
<body class='homepage'>
<!-- Header -->
<div id="header">
<div id="logo-wrapper">
<div class="container">
<!-- Logo -->
<div id="logo">
<h1><a href="#">Etoile Grill </a></h1>
</div>
</div>
</div>
<div class="container">
<!-- Nav -->
<nav id="nav">
<ul>
<li class="active"><a href="{% url 'homepage:home' %}">Etoile Grill</a></li>
<li><a href="{% url 'homepage:leftsidebar' %}">Menu</a></li>
<li><a href="{% url 'homepage:rightsidebar' %}">Contact [Tél 31 345 6785849]</a></li>
</ul>
</nav>
</div>
</div>
извлечение из style.css (без статических тегов)
#body {
background: #fefbd8 url(/static/homepage/images/banner.jpg) repeat;
}
body,input,textarea,select
{
font-family: 'Questrial', sans-serif;
font-size: 11pt;
line-height: 1.75em;
}
h1,h2,h3,h4,h5,h6
{
}
web1 urls.py
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('homepage.urls')),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Когда я запускаю сервер разработки, я получаю ожидаемые страницы веб-сайта, навигацию, цвета, шрифты, контейнеры, все в порядке, НО всегда возникают ошибки: -
Starting development server at http://192.168.1.105:8000/
Quit the server with CONTROL-C.
[03/Jun/2019 18:44:41] "GET / HTTP/1.1" 200 7834
Not Found: /css/style.css
Not Found: /css/style-desktop.css
[03/Jun/2019 18:44:42] "GET /css/style-desktop.css HTTP/1.1" 404 2650
[03/Jun/2019 18:44:42] "GET /css/style.css HTTP/1.1" 404 2626
Ясно, что django находит статическое, иначе я не получил бы изображения и функции страницы, верно? Так что просто .css кажется пропущенным.
Так что я думаю, что это может быть что-то вроде проблемы с пространством имен при переходе между страницами
Полагаю, я упустил что-то простое, но через несколько дней я ослеп (или туп) - так что любые подсказки приветствуются ..