Django页面异常:旧页面及新创建页面无法显示问题求助
Django页面无法正常显示问题排查
问题描述
我最初在Django中创建了首页、关于我们、联系我们、博客等页面,之后新增了商城页面。但现在部分旧页面(关于我们、联系我们、博客)无法正常显示,新创建的页面也加载异常——尽管views、urls等配置都没问题。我试过修改视图、调整模板语法等方法,问题仍未解决。
相关页面状态截图:
- 旧页面(无法显示状态)
- 旧页面(无法显示状态)
- 商城页面
- 新页面(无法显示状态)
以下是联系我们页面的模板代码:
{% extends 'base.html' %} {% block content %} {% load static%} <link rel="stylesheet" href="/static/css/contact_us.css"> <section> <div class="section-header"> <h2>Contact Us</h2> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p> </div> <div class="container"> <div class="contact-info"> <div class="contact-info-item"> <div class="contact-info-icon"> <i class="fas fa-home"></i> </div> <div class="contact-info-content"> <h4>Address</h4> <p>Jankpuri South,<br/> New Delhi, India, <br/>55060</p> </div> </div> <div class="contact-info-item"> <div class="contact-info-icon"> <i class="fas fa-phone"></i> </div> <div class="contact-info-content"> <h4>Phone</h4> <p>571-457-2321</p> </div> </div> <div class="contact-info-item"> <div class="contact-info-icon"> <i class="fas fa-envelope"></i> </div> <div class="contact-info-content"> <h4>Email</h4> <p>support@shemade.com</p> </div> </div> </div> <div class="contact-form"> <form action="" id="contact-form"> <h2>Send Message</h2> <div class="input-box"> <input type="text" required="true" name=""> <span>Full Name</span> </div> <div class="input-box"> <input type="email" required="true" name=""> <span>Email</span> </div> <div class="input-box"> <input type="number" required="true" name=""> <span>Contact No.</span> </div> <div class="input-box"> <textarea required="true" name=""></textarea> <span>Type your Message...</span> </div> <div class="input-box"> <input type="submit" value="Send" name=""> </div> </form> </div> </div> </section> {% endblock %}
排查解决方案
1. 检查URL路由冲突
新增商城页面时容易出现路由覆盖问题:
- 核对项目根
urls.py和各app的urls.py,确保旧页面的路由没有被商城的通配符路由(如path('', ...))抢占 - 调整路由顺序,Django按从上到下匹配路由,把具体页面的路由放在通配符路由之前
- 安装
django-extensions后运行python manage.py show_urls,查看所有已注册路由,确认目标页面的路由存在且正确
2. 验证模板继承逻辑
- 检查
base.html是否存在{% block content %}{% endblock %}块,且未被其他自定义块覆盖 - 把
{% load static %}移到{% extends 'base.html' %}之后、其他内容之前,避免静态文件加载异常 - 临时注释掉
contact_us.css的引用,测试页面是否能正常渲染,排除CSS导致的布局失效
3. 确认静态文件配置
- 检查
settings.py中的STATIC_URL、STATICFILES_DIRS、STATIC_ROOT配置是否正确,新增商城后是否被修改 - 生产环境下运行
python manage.py collectstatic,确保静态文件被正确收集到指定目录 - 打开浏览器控制台的Network标签,查看
contact_us.css的加载状态,是否返回404错误
4. 排查视图函数异常
- 在旧页面的视图函数中添加
print()或断点,确认视图是否被正常调用 - 检查视图是否返回了正确的
HttpResponse或TemplateResponse,没有遗漏返回逻辑 - 确认视图中没有新增的异常捕获代码,导致页面无内容输出
5. 清除缓存
- 运行
python manage.py clearcache清除Django内置缓存 - 按
Ctrl+F5强制刷新浏览器,清除本地缓存
内容的提问来源于stack exchange,提问作者Indrajeet Singh Yadav
相关产品推荐
相关产品推荐

