Django在配置静态根目录时不提供静态文件

Django在配置静态根目录时不提供静态文件,django,deployment,django-staticfiles,Django,Deployment,Django Staticfiles,我有一个克隆的项目,我需要为Django本身的静态文件提供服务。这是我第一次以这种方式提供静态文件(过去我使用Nginx/Apache提供媒体和静态文件)。以下是我在生产中尝试使用Django自身提供静态文件的过程: 1-将静态\u URL和静态\u根添加到settings.py: ... STATIC_URL = '/static/' STATIC_ROOT = os.environ.get('DH_STATIC_ROOT_DIR', os.path.join(BASE_DIR, 'stati

我有一个克隆的项目,我需要为Django本身的静态文件提供服务。这是我第一次以这种方式提供静态文件(过去我使用Nginx/Apache提供媒体和静态文件)。以下是我在生产中尝试使用Django自身提供静态文件的过程:

1-将静态\u URL和静态\u根添加到settings.py:

...
STATIC_URL = '/static/'
STATIC_ROOT = os.environ.get('DH_STATIC_ROOT_DIR', os.path.join(BASE_DIR, 'static/'))
2-项目的目录树:

├── my_project
│   ├── DH
│   ├── env
│   ├── apps
│   ├── manage.py
│   ├── README.md
│   ├── requirements.txt
│   ├── static
│   └── templates
3-运行
/manage.py
,工作正常。以下是此命令后的
static/
目录树(过去静态目录中存在一些静态文件,因为此项目是MVT,正在加载模板):

4-让Django在生产中提供静态服务(在
url.py
):

5-模板如何引用静态文件:

{% load static %}
...
<link href="{% static 'plugins/global/plugins.bundle.css' %}" rel="stylesheet" type="text/css" />
{%load static%}
...
例如,在Chrome(inspect)中,我可以看到模板页面请求
http://127.0.0.1:8000/static/media/logos/logo-6.png
存在的
static/media/logos/logo-6.png
(所有对静态文件的请求都会引发404 HTTP状态代码)。即使在
DEBUG=True
中,此配置也无法工作,我做错了什么?提前感谢。

作为文档,服务不应用于生产。如果您不想使用NGIX或Apache,则考虑使用。您只需通过
pip install whitenoise
安装它,并将以下行添加到中间件:

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

谢谢,我试试看。你知道为什么我的上述配置即使通过
DEBUG=True
也不能工作吗?
{% load static %}
...
<link href="{% static 'plugins/global/plugins.bundle.css' %}" rel="stylesheet" type="text/css" />
MIDDLEWARE = [
  'django.middleware.security.SecurityMiddleware',
  'whitenoise.middleware.WhiteNoiseMiddleware',
  # ...
]