404页面中“返回首页”不能用onclick,因弱网或JS禁用时按钮失效;必须用← 返回首页等原生链接,确保可点击、可复制、无障碍且不依赖脚本执行。

404页面里加“返回首页”按钮,为什么不能用 onclick?
因为移动端或弱网环境下,JS 可能未加载、被拦截,甚至浏览器禁用了脚本。用户点一个按钮却没反应,比白屏更糟。
真正可靠的导航必须不依赖 JS 执行:<a href="/">← 返回首页</a> 是底线。不要写 <button onclick="location.href='/'"></button> —— 按钮在 JS 失效时就是死的,而链接天然可点击、可右键、可复制、可被屏幕阅读器识别。
怎么让“上一页”在 404 页面里安全可用?
浏览器原生的 history.back() 在部分场景会失效(比如从外站直接跳入、或刷新后 history 栈为空),而且需要 JS 支持。
更稳妥的做法是:只提供语义清晰的链接,并明确告知行为边界:
-
<a href="javascript:history.back()">← 返回上一页</a>—— 兼容性好,但需 JS;作为次选,加rel="nofollow"避免爬虫误抓 - 优先显示「返回首页」+「搜索本站」两个确定路径,比如:
<a href="/search">? 搜索网站内容</a> - 如果页面本身支持 URL 参数(如博客),可解析
window.location.pathname动态生成建议链接,但仅作提示,不替代主入口
为什么 404 页面里不要放“回到上一个栏目”这类动态导航?
这类逻辑需要判断路径结构(比如 /blog/xxx → /blog/),但用户访问的 404 路径可能是任意构造的(/admin/api/v2/delete?token=xxx),根本不存在“上一个栏目”。强行推断容易生成无效链接,反而增加 404 连锁反应。
真实案例:某站点在 404 页面里自动截取 /product/123 的前缀生成 <a href="/product"></a>,结果 /product 路由本身也 404,用户点进去又进一次错误页。
简洁、确定、无副作用的链接才值得放:首页、搜索页、联系页——这些路径你 100% 确保存在且返回 200。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
立即学习“前端免费学习笔记(深入)”;
静态托管平台(GitHub Pages / Netlify)下,快捷导航的路径怎么写才不 404?
所有链接必须用绝对路径(以 / 开头),否则相对路径在深层路径下会错位。比如用户访问 /docs/guide/install/ 时触发 404,<a href="index.html"></a> 会尝试请求 /docs/guide/index.html,大概率又 404。
正确写法只有这一种:<a href="/"></a>、<a href="/search"></a>、<a href="/contact"></a>。
额外提醒:GitHub Pages 不支持 .htaccess 或服务器重写,所以别指望靠 ../ 回退;Netlify 的 _redirects 文件虽可配置,但 404 页面里的链接仍要自己写对,重定向规则管不了前端 a 标签。


















