必须真实返回404状态码,否则搜索引擎误收、用户无感知;需用HTTP服务(如npx serve)或curl -I验证,静态托管仅认根目录小写404.html,SPA需排除该路径,HTML/CSS须极简内联、无JS依赖、高对比度、响应式。

不能只写一个 404.html 文件就完事——服务器必须真实返回 404 Not Found 状态码,否则搜索引擎当普通页面收录,用户也意识不到自己进了死链。
怎么确认你的 404 页面真返回了 404 状态码
本地双击打开 404.html 完全无效,file:// 协议压根没有 HTTP 状态码。必须走真实 HTTP 服务验证:
- 用
npx serve -s或python3 -m http.server 8000启服务,访问http://localhost:8000/xxx-abc123 - 打开 DevTools → Network → 找该请求 → 看 Response Headers 里
Status是否为404 Not Found - 命令行更准:
curl -I https://yoursite.com/nonexistent,第一行必须是HTTP/1.1 404 Not Found
文件名、路径、服务器配置三者必须同时满足
静态托管(GitHub Pages / Vercel / Netlify)默认支持,但只认严格小写的 404.html,且必须放在仓库根目录(跟 index.html 同级):
- 写成
404.htm、pages/404.html、404.HTML都不生效 - Apache:在
.htaccess中写ErrorDocument 404 /404.html,路径必须以/开头 - Nginx:在
server块中加error_page 404 /404.html;,并确保location = /404.html可被公开访问 - SPA 应用(React/Vue)要特别注意:
try_files $uri $uri/ /index.html;这类 fallback 规则会吞掉所有 404,必须排除/404.html路径
HTML 结构和 CSS 必须极简且无依赖
用户进 404 页面平均停留不到 8 秒,任何 JS 加载失败、被拦截或禁用,都会让按钮失灵甚至白屏:
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
立即学习“前端免费学习笔记(深入)”;
-
<title></title>必须含 “404”,例如<title>404 - 页面未找到</title> -
<h1></h1>直写<h1>404 Not Found</h1>,不能是图片、SVG 文本或 JS 动态插入 - 核心内容用
<main></main>包裹,加role="main"提升可访问性 - CSS 必须内联在
<style></style>标签里,控制在 1KB 以内;禁用<link rel="stylesheet"> - 所有资源路径用根相对路径:
/css/style.css、/img/icon.svg,不用./或../ - 禁用
<meta http-equiv="refresh">和自动跳转 JS,它们会让状态码变成 200,破坏 SEO
别忽略文字对比度和移动端适配
弱网下加载失败概率高,纯 HTML + 内联 CSS 是唯一可靠组合:
- 文字与背景对比度必须 ≥ 4.5:1,可用 webaim.org/contrastchecker 验证
- 用系统字体栈:
font-family: -apple-system, BlinkMacSystemFont, sans-serif; - 字号用
rem或clamp(),比如font-size: clamp(2.5rem, 5vw, 4rem); - 居中用
display: flex; height: 100vh;,比position: absolute更稳 - 按钮用
<a href="/">返回首页</a>,不是<button onclick="..."></button>—— JS 关闭时仍要可用
最常被忽略的点:即使 HTML 写对了,只要服务器没返回真实 404 状态码,整个页面就等于不存在。验证永远从 curl -I 开始,而不是看页面有没有显示 “404” 两个字。


















