Django部署HTML模板时浏览器无法加载样式表问题排查
样式未生效的遗漏配置排查
你漏了Django静态文件加载必须的核心配置,按下面步骤逐一核对补全即可:
- 补全
settings.py静态文件配置
你只配置了模板路径,没有加静态文件相关的基础参数,打开settings.py在合适位置加下面几行:
注意:如果当前你把# 静态资源的访问URL前缀 STATIC_URL = 'static/' # 指定开发环境下静态文件的存放目录,也就是你放assets文件夹的static目录 STATICFILES_DIRS = [ BASE_DIR / 'static', ]DEBUG设为了False,开发阶段先改回True,Django在DEBUG关闭状态下默认不会自动托管静态文件。 - 补全根路由的静态文件映射
打开项目根目录下的urls.py,导入静态文件处理方法,在路由列表末尾追加静态文件路由,让Django能响应静态资源请求:from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # 你原本配置的其他业务路由,比如首页指向index视图的路由 ] # 开发环境下追加静态文件服务路由 if settings.DEBUG: urlpatterns += static(settings.STATIC_URL, document_root=settings.STATICFILES_DIRS[0]) - 核对目录结构与视图写法
确认你的项目目录层级符合Django规范,不要把static、templates文件夹放错位置:
同时确认返回首页的视图函数是用项目根目录(和manage.py同级) ├── static │ └── assets │ ├── css │ ├── images │ └── 其他静态资源 ├── templates │ └── index.html └── 项目主配置目录 ├── settings.py └── urls.pyrender方法加载模板,不要直接读文件返回,参考写法:from django.shortcuts import render def index_page(request): return render(request, 'index.html') - 缓存问题排查
改完所有配置后重启Django开发服务,打开浏览器按F12切到控制台/网络面板看CSS文件的请求状态,如果是404就回去核对文件路径,如果是200还是没样式,按Ctrl+F5强制刷新清掉浏览器缓存即可。
内容的提问来源于stack exchange,提问作者Felicity
相关产品推荐
相关产品推荐

