Hugo Markdown 文件的 Front Matter slug
、url
有什么不同,作用是什么,如何使用?
title: 'Hugo PaperMod - Slug和URL'
date: ''
slug: ''
url: 'hugo-papermod/slug-and-url'
showToc: true
TocOpen: true
enableCopyright: true
comments: true
weight: null
draft: false
enableDonate: true
slug
slug
是用于生成 URL 片段的字段,它会影响文章的最终路径,但不会改变整个 URL 结构
如果 title
过长或包含特殊字符,可以用 slug
来简化 URL
默认情况下,Hugo 会使用 title
的 小写、短横线分隔 形式作为 slug
例如:
在 content/posts
路径下新建 my-first-post.md
文章,然后文章 Front Matter 中的 slug
如下
title: "My First Hugo Post"
slug: "my-first-post"
URL 效果:
http://example.com/posts/my-first-post/
url
url
允许完全自定义文章的访问路径,并且可以脱离 Hugo 默认的路径规则
如果指定了 url
,Hugo 不会使用 slug
和 title
生成 URL,而是直接采用 url
字段的值
title: "My First Hugo Post"
url: "/custom-path/my-special-post/"
URL 效果:
http://example.com/custom-path/my-special-post/
所以说,url 可以完全控制文章的路径,不受 slug 影响
示例对比
假设有 content/posts/my-post.md,不同 slug 和 url 配置的影响如下
title: "My Hugo Guide"
slug: "hugo-guide"
url: "/docs/hugo-guide.html"
Hugo 配置 | 生成的 URL |
---|---|
默认 | /posts/my-hugo-guide/ |
slug: “hugo-guide” | /posts/hugo-guide/ |
url: “/docs/hugo-guide.html” | /docs/hugo-guide.html |
区别(总结)
/ | slug | url |
---|---|---|
作用 | 影响 URL 片段 | 直接指定完整路径 |
依赖默认结构 | 是 | 否 |
适用场景 | 让 URL 更简洁 | 自定义完整路径 |
例子 | slug: “short-title” → /posts/short-title/ | url: “/custom/path.html” → /custom/path.html |
slug 和 url 的使用建议
适合用 slug 的情况
- 让 URL 结构简洁、可读(避免长标题转化为 URL)
- 仍然希望保持 Hugo 默认的 URL 结构(如 /posts/)
适合用 url 的情况
- 需要完全自定义 URL 路径,例如:
- 迁移旧博客,需要保持 URL 结构一致。(这是我关心的,所以一直使用
url
) - SEO 需求,需要特定路径
- 文章路径不符合 Hugo 默认规则
感谢您的耐心阅读!来选个表情,或者留个评论吧!