文章内部引用问题

问题描述

在文章中引用博客内部的文章,不能直接使用markdown语法的 [描述](文章地址)引用链接,因为Hexo 是一个静态站点生成器,文章 .md 文件会被渲染成 HTML。

浏览器访问的 URL 是基于 permalink 配置生成的路径格式(/:year/:month/:day/:title/),而不是 .md 文件路径。

当点击错误引用链接时,服务器会尝试查找 public/title.md 这个文件,但实际存在的是 public/year/month/day/title/index.html,所以会返回 Cannot GET

解决方法

Hexo 内置了 post_link 标签插件,可以根据文章标题或 slug 自动生成正确的永久链接。

使用方法:在你的 Markdown 文章中,使用以下格式:

1
{% post_link title %}	相当于 [](./title)

或者指定显示文本:

1
{% post_link title 点击这里查看 %}	相当于 [点击这里查看](./title)

效果:

插件会根据你 _config.yml 中的 permalink 配置(:year/:month/:day/:title/)自动生成正确的 URL 路径 /year/month/day/title/,而不是直接链接到 .md 文件。

优点:

  • 如果你修改了 permalink 格式,链接会自动更新
  • 不依赖具体的文件路径
  • 部署到不同环境(GitHub Pages、Vercel 等)都能正常工作