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.
这似乎是一个非常普遍的问题,我已经阅读了文档并尝试了所有解决方案和多个 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.