必须真实返回404状态码,否则页面无效;需用curl -I或DevTools验证响应头为HTTP/1.1 404 Not Found,HTML中title和h1须含“404”,main标签包裹内容,CSS内联≤1KB,静态平台仅认根目录小写404.html。

单文件 HTML 就能搞定 404 页面,但**90% 的人卡在服务器没返回真实 404 Not Found 状态码**——页面再漂亮,状态是 200 OK 就等于白做。
怎么确认你的 404.html 真被当错误页用了
别点开文件看效果。本地双击 404.html 走的是 file:// 协议,压根没有 HTTP 状态码。
- 用
npx serve -s启一个本地服务,然后访问http://localhost:5000/xxx-abc - 打开 Chrome DevTools → Network 标签 → 找那个请求 → 看
Status列是不是404 Not Found - 更准的命令:
curl -I https://yoursite.com/nonexistent,第一行必须是HTTP/1.1 404 Not Found
如果看到 200 OK 或 302 Found,说明服务器配置没生效,HTML 写得再好也没用。
HTML 结构里哪些标签和内容不能省
这不是普通网页,而是浏览器和爬虫识别“这是错误”的唯一依据。删掉任意一条,SEO 和无障碍都会出问题。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
立即学习“前端免费学习笔记(深入)”;
-
<title></title>必须含文字404,例如<title>404 - 页面未找到</title> -
<h1></h1>必须直写404 Not Found或等效中文,不能是图片、SVG 文本或 JS 插入 - 核心内容必须包在
<main role="main"></main>里,让屏幕阅读器跳过导航直读错误信息 - 返回首页用
<a href="/">← 返回首页</a>,不是<button onclick="..."></button>—— JS 关闭时仍要可用
为什么所有 CSS 必须内联且 ≤1KB
404 页面可能发生在任何路径下(比如 /blog/post/2024/xxx),此时相对路径的 ./css/style.css 会 404,外链加载失败 = 白屏。
- 把全部样式塞进
<style></style>,删空格、注释、@import - 字体用系统栈:
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; - 对比度 ≥ 4.5:1,深灰背景配浅灰文字(如
#333+#999)不达标,改用#fff或加 text-shadow - 居中用
display: flex; height: 100vh;,别用position: absolute或复杂 Grid
静态托管平台最容易踩的命名和路径坑
GitHub Pages、Vercel、Netlify 都只认一个名字:严格小写的 404.html,且必须放在项目根目录(和 index.html 同级)。
- 写成
404.htm、error404.html、pages/404.html或404.HTML→ 全部失效 - Git 提交前用
git ls-files | grep 404确认文件名没隐藏字符(Windows 记事本可能加 BOM) - Jekyll 用户必须在
404.html开头加:---\npermalink: /404.html\npublished: false\n--- - Cloudflare Pages / Netlify 若用重定向配置,需显式声明状态码:
/* /404.html 404
最常被忽略的一点:SPA 应用(React/Vue)的 try_files $uri $uri/ /index.html; 规则会把所有 404 吞掉,返回 200 的首页——必须加条件排除 /404.html 路径。


















