Django 静态文件 - 没有错误但仍未加载或更改 css

Django Static Files - No error but still doesnt load or change css

这似乎是一个非常普遍的问题,我已经阅读了文档并尝试了所有解决方案和多个 YouTube 视频,但找不到解决方案。

当我 运行 开发服务器时,我的静态文件不会加载,但我的终端也不会引发任何错误。

文件布局: File Structure

SETTINGS.PY

STATIC_URL = '/staticfiles/'
MEDIA_URL = '/images/'

STATICFILES = [
    os.path.join(BASE_DIR, 'staticfiles'),
]

终端输出:

July 15, 2020 - 21:02:47
Django version 3.0.8, using settings 'mywebsite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[15/Jul/2020 21:02:51] "GET / HTTP/1.1" 200 148
[15/Jul/2020 21:02:51] "GET /staticfiles/css/main.css HTTP/1.1" 404 1672
[15/Jul/2020 21:02:51] "GET /staticfiles/images/headshot.JPG HTTP/1.1" 404 1693

将此更改为

STATICFILES = [
os.path.join(BASE_DIR, 'staticfiles'),
]

至此

STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'staticfiles'),
]

并确保您为静态文件创建的文件夹的名称是 'staticfiles'

settings.py 中用于提供静态文件的正确配置应该是:

# For serving static files
STATIC_URL = '/staticfiles/'

# All the staticfiles will be collected here
STATIC_ROOT = os.path.join(BASE_DIR, 'assets')

# This should be "STATICFILES_DIRS" and not "STATICFILES"
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'staticfiles'),
]

STATIC_ROOT 中定义的文件夹必须不同于 staticfiles 文件夹。
在上面给出的片段中,我将这个文件夹命名为“assets”。

当您 运行 python manage.py collectstatic 时,跨不同应用程序定义的所有静态文件都将“收集”在这里进行部署。


用于提供媒体文件:

# For media files
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')

您还需要根据文档定义 MEDIA_ROOT

您可以阅读更多关于管理静态文件的内容here.