Django 3.2.8:0 个静态文件复制到“/static”

Django 3.2.8: 0 static files copied to '/static'

执行命令时出现此错误python manage.py collectstatic:

0 static files copied to '/home/project'.

这意味着没有任何变化,我的静态文件已经存在于目标中,但在此文件夹中只有一个文件:

static/
      - staticfiles.json

但我希望我的所有 CSS、js、HTML 面板管理员都在其中。

Django 设置:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "/static/")

STATICFILES_DIRS = (
    STATIC_ROOT,
) 

urls.py

...
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

我也尝试了这些 1, 2 但没有找到结果。

settings.py

import os
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'static')

urls.py

urlpatterns = [
    path('demo/',Demo.as_view(),name='demo')
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(settings.MEDIA_URL, document_root=settings.STATIC_ROOT)

在文件夹中添加您的文件- 静态->demo_folder->staticfiles.json

python3 manage.py collecstatic

使用 STATICFILES_DIRS 定义所有路径,Django 将在其中查找静态文件。 例如:

STATICFILES_DIRS = [os.path.join(BASE_DIR, "templates/staticfiles")]

当你 运行 collectstatic, Django will copy all found files in all your paths from STATICFILES_DIRS into STATIC_ROOT.

对于您的情况,Django 会将所有文件复制到:

STATIC_ROOT = os.path.join(BASE_DIR, "/static/")

之后,您的静态文件可以通过您定义的 STATIC_URL URL 访问。在你的情况下:

STATIC_URL = '/static/'