Python Django 无法让静态文件工作



我正在做一个python django项目,现在我想用一个styles.css文件给它添加一些样式,但我就是不能让它工作。

我的项目被命名为商务和我的应用程序被称为拍卖,我有静态文件下商务/拍卖/静态/拍卖/styles

css我的settings.py文件包含

INSTALLED_APPS = [
'auctions',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
STATIC_URL = '/static/'

我的拍卖/urls . py

from django.urls import path
from django.conf import settings
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from . import views
urlpatterns = [
path("", views.index, name="index"),
]
if settings.DEBUG:
urlpatterns += staticfiles_urlpatterns()

My styles.css file

h1 {
color: red;
}

在我的模板文件中,我有这个

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<title>{% block title %}Auctions{% endblock %}</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<link rel="stylesheet" href="{% static 'auctions/styles.css' %}">
</head>
<body>
<h1>Auctions</h1>
</body>
</html>

感觉我错过了一些明显的东西。

编辑:所以我设法解决了我的问题,这是我的settings.py中的STATIC_URL是错误的,它看起来在错误的地方。我把它更新为:

STATIC_URL = 'auctions/static/'

现在它工作了。谢谢你的回复和帮助。

编辑settings.py文件,将WhiteNoise(检查这里的lib)添加到MIDDLEWARE列表中,在除了Django的SecurityMiddleware之外的所有中间件之上:

MIDDLEWARE = [
# ...
"django.middleware.security.SecurityMiddleware",
"whitenoise.middleware.WhiteNoiseMiddleware",
# ...
]

您还应该将此添加到settings.py:

STATICFILES_STORAGE = " whitnoise .storage. compressedmanifeststaticfilesstorage ">

更多细节,请查看Using WhiteNoise with Django guide。

将此添加到您的settings.py中应该可以解决问题:

STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static")
]