有时找不到django2 css会产生404错误

时间:2019-06-03 17:09:40

标签: css django

使用Django 2.2(Ubuntu 19.04和python3.7)并学习首次添加一些CSS(和js)。尝试使用一个称为主页的应用程序,以生成具有三个页面且带有一些静态内容的可视化主页。

我遇到间歇性的CSS'找不到文件'404错误,我无法使用Django文档和stackoverflow上列出的许多解决方案来解决。

我已经在django2.2 docs文件夹结构的静态/首页下使用了app(主页),每个文件夹都有自己的文件夹,并且还尝试了:-

a。将css,js,images文件夹移动到web1 / static(全局静态)和web1 / static / homepage(无子文件夹) b。使用STATIC_ROOT和STATIC_URL并将其调整为各种设置 C。使用变体来调整静态模板标签以匹配a。并带有完整网址/ web1 / homepage / static / homepage / css,但没有静态标记 d。 urls.py中是否包含url + static []节 e。带有和不带有静态+标记的CSS文件 F。重新加载并清除缓存,尝试使用其他浏览器和计算机。

项目大纲为:-

├── 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中的关键行(也尝试仅使用“主页”作为最后一个条目。


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'),]

home.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。

因此,我认为在页面之间导航时可能类似于名称空间问题

我想我错过了一些简单的东西,但是几天后我失明了(或者愚蠢)-因此欢迎任何线索。

0 个答案:

没有答案