404.html需严格满足五条件才生效:根目录小写命名、服务器显式配置、禁用外部资源、内联样式与绝对路径、含语义化“404”文本。

直接说结论:光写一个 404.html 文件放进去,90% 的情况不会生效——它必须在根目录、严格小写命名、被服务器明确指定为 404 响应体,且不能依赖外部资源。
404.html 必须放在根目录且命名严格为小写
GitHub Pages、Vercel、Netlify、Cloudflare Pages 这些平台只识别仓库或项目根目录下的 404.html。任何变体都会失效:
-
404.htm、error404.html、pages/404.html、404.HTML全部不认 - Windows 记事本保存可能带 BOM,用
git ls-files | grep 404确认是否真提交了该文件 - Jekyll 用户需在
404.html开头加 YAML front matter:---\npermalink: /404.html\npublished: false\n---,否则会被当普通页面渲染
Nginx / Apache / 宝塔必须显式配置 error_page 或 ErrorDocument
静态托管平台靠约定,但自建服务器(包括宝塔)不会自动接管——你得告诉它“用这个文件响应 404”:
- Nginx:在
server块中加error_page 404 /404.html;,并确保location = /404.html存在且未被rewrite覆盖 - Apache:在
.htaccess中写ErrorDocument 404 /404.html(路径必须以/开头) - 宝塔:进网站 → 设置 → 配置文件,找到
error_page 404行,删掉前面的#注释符;若无此行,手动添加
404 页面不能依赖 JS、外部 CSS 或相对路径
用户触发 404 时,当前 URL 是任意的(比如 /blog/post/123/xxx),所有相对路径会基于它解析,极易二次 404:
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- CSS 必须内联进
,禁用@import和外链 - 图片用 data URI 或绝对路径(如
/img/404-icon.svg),别用./icon.png - 导航链接全用根路径:
- 别写
window.location.href = '/';自动跳转——它返回的是 200 状态,不是真正的 404;提供手动按钮即可
本地测试必须起 HTTP 服务,不能双击打开
用 file:// 协议双击打开,浏览器根本发不出 HTTP 状态码,所谓“404 页面”只是视觉模拟,对 SEO 和真实用户无效:
- Node.js 用户:运行
npx serve -s .(开发时可先去掉-s参数,让缺失路径真实返回 404) - Python 用户:运行
python3 -m http.server 8000,然后访问http://localhost:8000/nonexistent - 用
curl -I http://localhost:8000/nonexistent检查响应头第一行是否为HTTP/1.1 404 Not Found
最容易被忽略的一点:404 页面的 必须包含 “404” 字样,且不能是图片或 JS 插入——搜索引擎和读屏软件只认语义化文本,否则它就不是真正意义上的 404 页面。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










