直接修改 标签的 href 属性最有效,所有跳转均由其控制;需注意缓存、前端路由、空格/全角字符、相对与绝对路径差异(推荐根目录绝对路径 /about.html),并配合 target="_blank"、rel、onclick 等属性增强控制,同时警惕模板引擎和构建工具对链接的动态处理。
标签的 href 属性最有效所有跳转目标都由 标签的 href 属性控制,改它就对了。别去动 JS 或 CSS——除非你明确知道它们在拦截或重写跳转行为。
常见错误是改了 HTML 却没生效,大概率是因为:

Ctrl+F5 强制刷新再测href 可能被框架忽略,实际跳转由 router.push() 控制href 值里混入了空格或全角字符,比如 href=" /about.html ",会导致 404模板里链接常写成 href="about.html" 或 href="../contact/index.html",这类相对路径容易在挪动文件结构后失效。
更稳的做法是统一用根目录起始的绝对路径(不是带 http:// 的那种):
关于我们 第一篇文章
这样无论当前页面在哪个子目录,链接都能准确定位。但要注意:
file:// 协议)时,/xxx 会指向系统根目录,导致失效;开发阶段建议用本地服务器(如 python3 -m http.server)https://example.com/myapp/),需配合 ,否则 /about.html 会跳到站点根目录仅改 href 不够?这些属性能补足行为控制:
target="_blank":新开标签页,但必须加 rel="noopener noreferrer" 防安全风险rel="nofollow":告诉搜索引擎不传递权重,适合广告或用户生成链接href,而是用 onclick="return checkBeforeJump();",函数返回 false 就阻断跳转错误示范: —— 这会让链接失去语义、SEO 友好性,并在 JS 失败时完全不可用。
如果你用的是 Hugo、Jekyll、Vue CLI 或 Vite 模板,很多链接其实是动态生成的:
{{"/about.html" | relURL}},得改模板里的变量或配置项 baseURL
对应的是路由配置,要改 src/router/index.js 里的 path
html-webpack-plugin,href 可能被自动注入 hash 或 CDN 域名,此时需查插件配置中的 templateParameters 或 publicPath
最保险的验证方式:右键「查看网页源代码」,确认最终输出的 是你改过的值,而不是原始模板字符串。