hexo 学习 0005:hexo url 配置

在 Hexo 博客的配置中,URL 的设置至关重要。它不仅决定了文章链接的展示形式,还直接影响网站的 SEO 效果以及在特定托管环境(如 GitHub Pages 子目录)下的访问正确性。本文将详细解析 Hexo 配置文件中关于 URL 的各项参数,帮助你构建清晰、规范的网站链接结构。

一、核心配置参数解析

在站点配置文件 _config.yml 中,urlrootpermalinkpretty_urls 是控制网站路径的核心选项。

1. 站点地址与根目录

  • url:网站的完整网址,必须以 http://https:// 开头。这是搜索引擎和外部链接识别网站的基础。
  • root:网站在服务器上的根目录。通常情况下,Hexo 会自动读取 url 中的路径部分,但在特定部署场景下需要手动指定。

2. 永久链接格式

  • permalink:定义文章页面的 URL 结构。默认格式为 :year/:month/:day/:title/,你可以根据需要调整变量顺序。
  • permalink_defaults:用于设置永久链接中各变量的默认值,例如对分类或标题的默认填充。

3. 链接美化选项

  • pretty_urls.trailing_index:布尔值。设置为 false 时,将去除永久链接尾部的 index.html
  • pretty_urls.trailing_html:布尔值。设置为 false 时,将去除永久链接尾部的 .html 后缀(注:此设置对尾部的 index.html 无效)。

二、配置示例与场景应用

场景一:网站存放在子目录

如果你的网站托管在子目录中(例如使用 GitHub Pages 部署项目页面),必须显式设置 urlroot,以确保资源文件(CSS、JS、图片)的路径引用正确。

1
2
3
# 例如网站地址为 https://example.com/hexo-learn
url: https://example.com/hexo-learn
root: /hexo-learn/

场景二:去除 URL 尾部索引文件

默认情况下,Hexo 生成的页面 URL 可能包含 index.html。通过配置 pretty_urls,可以将其去除,使链接更加简洁。

1
2
3
pretty_urls:
trailing_index: false # 原 https://example.com/foo/bar/index.html 变为 https://example.com/foo/bar/
trailing_html: true # 保留 .html 后缀

三、完整配置参考

基于上述说明,以下是一个针对子目录部署且保留默认链接格式的配置示例:

1
2
3
4
5
6
7
8
# Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project'
url: https://example.com/hexo-learn
root: /hexo-learn/
permalink: :year/:month/:day/:title/
permalink_defaults:
pretty_urls:
trailing_index: true
trailing_html: true

四、参数对照表

为了方便查阅,整理核心参数如下:

设置 描述 默认值
url 网站完整地址,必须包含协议头 (空)
root 网站根目录路径 url’s pathname
permalink 文章永久链接的结构模板 :year/:month/:day/:title/
permalink_defaults 永久链接变量的默认值 (空)
pretty_urls.trailing_index 是否保留尾部的 index.html true
pretty_urls.trailing_html 是否保留尾部的 .html true

正确配置 URL 是 Hexo 博客部署的基础。请根据你的实际部署环境(根目录或子目录)以及对链接美观度的需求,合理调整上述参数。