这个页面本身就在 iframe 里,下面的页内锚点点了会在框内滚动。
假设当前页面是 /blog/2026/intro.html:
| 写法 | 指向 | 说明 |
|---|---|---|
intro.html | /blog/2026/intro.html | 纯文件名:同目录 |
../img/a.png | /blog/img/a.png | .. 上一级 |
./a.md | /blog/2026/a.md | . 当前目录,可省略 |
/img/a.png | /img/a.png | 以 / 开头 = 站点根,最推荐,不受当前页所在层级影响 |
https://… | 整站外部 | 带协议名的绝对 URL,只用于真的要去站外 |
本站挂在子路径 /nuxt/ 下,所以教程里所有站内示例都用 / 开头的站内路径,不写 ./../../ 这种跟着目录跑的相对链——部署路径一变就全断。
外部链接示例:MDN Web Docs(新标签页)
任何带 id 的元素都是锚点目标,不一定要用旧的 <a name>:
跨页锚点把两段拼起来写:/tutorials/html.html#表格。本页顶部标题「a 标签唯一的必填项」下面其实也有个隐式目标——浏览器地址栏里会显示带 # 的完整 URL,可以直接发给别人。
外站链接开新标签页时,必须补上 rel="noopener":
<a href="https://example.com" target="_blank" rel="noopener">外部</a>
历史原因是旧浏览器里被打开的页面能通过 window.opener 反过来改你本页的 location(tabnabbing 钓鱼)。现代浏览器对 target="_blank" 已默认隐含 noopener,但显式写上更稳妥,也能防住老版本。
站内链接不要加 target="_blank":它会切断用户的返回路径,还多占一个标签页。