django2 css, иногда не найденный, выдает ошибку 404 - PullRequest
0 голосов
/ 03 июня 2019

Использование 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 кажется пропущенным.

Так что я думаю, что это может быть что-то вроде проблемы с пространством имен при переходе между страницами

Полагаю, я упустил что-то простое, но через несколько дней я ослеп (или туп) - так что любые подсказки приветствуются ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...