使用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。
因此,我认为在页面之间导航时可能类似于名称空间问题
我想我错过了一些简单的东西,但是几天后我失明了(或者愚蠢)-因此欢迎任何线索。