You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django使用extends/includes时<body>下出现&#xFEFF;导致页面留白求助

问题根源与解决方案

核心原因

你遇到的&#xFEFF;是UTF-8 BOM(字节顺序标记)字符,单文件运行时编辑器会自动处理BOM,但模板继承/引入时,多个带BOM的文件拼接后,BOM字符被留在了<body>标签前,导致页面留白。

具体排查与解决步骤

  • 逐个检查所有模板文件的编码:
    别只处理主文件,base.html及所有被includes的片段文件都可能带BOM。在VS2022中,通过「工具→自定义→命令→文件」添加「高级保存选项」,打开每个模板文件后,选择「UTF-8 无签名」格式重新保存。也可以用Notepad++打开文件,看右下角编码标识,若显示「UTF-8-BOM」,直接转成「UTF-8」保存,这个工具的编码转换更不易遗漏。

  • 检查模板引擎的输出配置:
    如果你用的是Razor、Jinja2这类模板引擎,部分引擎默认会保留文件的BOM字符。以Razor为例,可在项目的.csproj文件中添加配置:

    <PropertyGroup>
      <MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
      <PreserveCompilationContext>true</PreserveCompilationContext>
      <FileEncoding>UTF-8</FileEncoding>
    </PropertyGroup>
    

    强制引擎以无BOM的UTF-8编码输出拼接后的页面。

  • 清理VS缓存与编译文件:
    VS2022的缓存可能留存旧的带BOM文件版本,即使你已重新保存。手动删除项目的bin和obj文件夹,重启VS后重新编译运行,避免缓存干扰。

临时JS方案的局限性

你用JS临时移除字符的方法只能治标,若后续新增模板文件带BOM,问题还会复发,从文件编码和模板引擎配置层面解决才是根本。

内容的提问来源于stack exchange,提问作者Berro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 08:02:39