直接修改 标签的 href 属性最有效,所有跳转均由其控制;需注意缓存、前端路由、空格/全角字符、相对与绝对路径差异(推荐根目录绝对路径 /about.html),并配合 target="_blank"、rel、onclick 等属性增强控制,同时警惕模板引擎和构建工具对链接的动态处理。

直接改 标签的 href 属性最有效
所有跳转目标都由 标签的 href 属性控制,改它就对了。别去动 JS 或 CSS——除非你明确知道它们在拦截或重写跳转行为。
常见错误是改了 HTML 却没生效,大概率是因为:
- 浏览器缓存了旧页面,
Ctrl+F5强制刷新再测 - 用了前端路由(比如 Vue Router、React Router),此时
href可能被框架忽略,实际跳转由router.push()控制 -
href值里混入了空格或全角字符,比如href=" /about.html ",会导致 404
相对路径 vs 绝对路径:什么时候该用哪一种
模板里链接常写成 href="about.html" 或 href="../contact/index.html",这类相对路径容易在挪动文件结构后失效。
更稳的做法是统一用根目录起始的绝对路径(不是带 http:// 的那种):
立即学习“前端免费学习笔记(深入)”;
关于我们 第一篇文章
这样无论当前页面在哪个子目录,链接都能准确定位。但要注意:
- 本地双击打开 HTML 文件(
file://协议)时,/xxx会指向系统根目录,导致失效;开发阶段建议用本地服务器(如python3 -m http.server) - 如果网站部署在子路径下(比如
https://example.com/myapp/),需配合,否则/about.html会跳到站点根目录
新窗口打开、禁止跟随、跳转前拦截:三个常用补充属性
仅改 href 不够?这些属性能补足行为控制:
-
target="_blank":新开标签页,但必须加rel="noopener noreferrer"防安全风险 -
rel="nofollow":告诉搜索引擎不传递权重,适合广告或用户生成链接 - 需要跳转前执行 JS(比如埋点、权限检查),不要删
href,而是用onclick="return checkBeforeJump();",函数返回false就阻断跳转
错误示范: —— 这会让链接失去语义、SEO 友好性,并在 JS 失败时完全不可用。
批量替换链接时,警惕模板引擎和构建工具的干扰
如果你用的是 Hugo、Jekyll、Vue CLI 或 Vite 模板,很多链接其实是动态生成的:
- Hugo 中可能是
{{"/about.html" | relURL}},得改模板里的变量或配置项baseURL - Vue 项目中
对应的是路由配置,要改src/router/index.js里的path - Webpack/Vite 构建时若启用了
html-webpack-plugin,href可能被自动注入 hash 或 CDN 域名,此时需查插件配置中的templateParameters或publicPath










