404页面必须真实返回HTTP 404状态码,静态托管认根目录404.html,Apache需ErrorDocument,Nginx需error_page;HTML须含语义化title、h1、main、noindex;CSS内联、字体用系统栈、图标用SVG或Data URI;跳转纯HTML,禁用JS和自动刷新。

404页面必须真实返回HTTP 404状态码,否则就是普通HTML文件
本地双击打开404.html永远看不到效果——file://协议没有HTTP状态码。浏览器Network面板里看到的Status不是404 Not Found,就说明服务器根本没认出这是错误页。静态托管(如Vercel、Netlify、GitHub Pages)通常自动支持,但只认根目录下严格命名为404.html的文件;Apache需在.htaccess加ErrorDocument 404 /404.html;Nginx需在server块中写error_page 404 /404.html,并确保location = /404.html可公开访问且不被rewrite覆盖。
HTML结构里这四样不能省:title、h1、main、noindex
搜索引擎和屏幕阅读器不看视觉,只读语义。缺一不可:
-
必须含“404”或“Not Found”,例如404 - 页面未找到 -
必须是纯文本,禁用SVG/Canvas渲染数字,也不要用JS动态插入404 Not Found
- 主内容必须包裹在
里,或加role="main",让辅助技术跳过导航直读错误 - 加
,防止被搜索引擎误收录为普通页面
CSS必须内联,字体用系统栈,图片用SVG或Data URI
404可能发生在任何路径下(比如/blog/post/xxx),此时相对路径的./css/style.css或../img/icon.png大概率404,导致白屏。所以:
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- 所有样式写进
标签,控制在1KB以内;删掉@import、空格和注释 - 字体用
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif,不依赖Web Font - 图标优先用内联SVG,或Data URI:
background-image: url("data:image/svg+xml,%3Csvg...%3E") - 文字与背景对比度≥4.5:1,可用
webaim.org/contrastchecker验证;避免#eee配#fff
跳转必须纯HTML,禁用JS绑定和自动刷新
用户平均在404页停留不到8秒,JS加载失败、CDN挂掉、脚本被拦截时,按钮必须仍能点击:
- 首页链接写
@#@#@#@#@#@#@#@#@#@0,不是 - “回到上一页”需前置判断:
document.referrer同域且非空才渲染,否则href设为#并置灰 - 搜索框用
,不绑定submit事件 - 绝对禁用
和setTimeout(() => location.href = '/', 2000),它们会让状态码变成200
真正难的不是布局多好看,而是当/assets/main.css本身404时,你的404.html还能稳稳显示——这意味着所有依赖都得砍掉,只剩里的几百字节和一个。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










