求助:Django开发服务器(runserver)页面显示为纯文本问题
Django开发服务器页面显示纯文本(内容被pre包裹)的排查思路
检查视图返回逻辑:
确认视图是否误将HTML以纯文本形式返回。比如用HttpResponse时未指定content_type='text/html',或者错误使用render_to_string直接返回内容而非render函数。示例:将return HttpResponse(html_content)改为return HttpResponse(html_content, content_type='text/html'),或直接用render(request, 'your_template.html')。排查模板嵌套问题:
检查模板文件(包括父模板和子模板)是否不小心把全部内容套进了<pre>标签,或者存在未闭合的<pre>标签。尤其注意模板继承时的标签层级是否正确。检查中间件配置:
查看settings.py中的MIDDLEWARE列表,排查近期新增或修改的中间件。部分中间件可能会篡改响应内容,将HTML包装进pre标签。可临时注释可疑中间件,重启服务器测试。验证模板渲染结果:
在视图中打印渲染后的内容,确认是否在Django渲染阶段就已经被pre标签包裹。同时检查模板路径配置是否正确,避免因模板未正确加载导致返回原始文本。清空浏览器缓存:
强制刷新页面(Ctrl+F5)或清空浏览器缓存,排除缓存残留的错误响应影响。
附完整HTML代码:
<!-- 此处为用户提供的完整HTML代码 --> <pre> <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>测试页面</title> </head> <body> <div class="container"> <h1>欢迎页面</h1> <p>这是测试内容</p> </div> </body> </html> </pre>
内容的提问来源于stack exchange,提问作者aids
相关产品推荐
相关产品推荐

