hexo文章url设置
hexo文章的url在博客根目录的_config.yml中进行配置,默认配置如下:
permalink: :year/:month/:day/:title/ #年/月/日/文章路径
这里的:title为source/_post下的相对路径,但是这样的话很容易造成url中文乱码,和不同浏览器因为字符集的问题导致的url失效。
这里建议尽量不使用默认配置,推荐使用如下两种方案:
-
方案一:自定义url
修改_config,yml配置为permalink: :year/:month/:day/:id/ #这里我们把title替换为id然后当我们发布文章时,在文章头部信息中添加
id信息--- title: 测试文章 date: 2021-04-22 11:02:53 categories: 类别一 id: blog001 # 此处的blog001对应url中的id部分 tags: - C++ - C# - java ---这样就可以避免中文乱码造成的影响。
-
方案二:使用hash值
这个方法适合比较懒的朋友,如果不想每次都要自定义文章id,可以直接修改_config.yml为:permalink: :year/:month/:day/:hash/ #这里我们把title替换为hash这样每次生成文章url,会自动生成hash值,保证不重复且不会因为编码出错。
这两种方案可以解决url的错误,并且自定义喜欢的url,但是默认的配置确实也可以用,但是格外注意一直情况,当你使用默认配置时,如果文章文件名或者文件夹名中含有#字符,在进入浏览器后,#后面的文字会被自动注释掉,导致虽然index.html存在,url也正常,但是就是无法点击跳转,这个是hexo一个很坑的地方吧!
最后贴上hexo的url自定义规则,大家自行参考,选择适合自己的方法吧!
| 变量 | 描述 |
|---|---|
| :year | 文章的发表年份(4 位数) |
| :month | 文章的发表月份(2 位数) |
| :i_month | 文章的发表月份(去掉开头的零) |
| :day | 文章的发表日期 (2 位数) |
| :i_day | 文章的发表日期(去掉开头的零) |
| :hour | 文章发表时的小时 (2 位数) |
| :minute | 文章发表时的分钟 (2 位数) |
| :second | 文章发表时的秒钟 (2 位数) |
| :title | 文件名称 (relative to “source/_posts/“ folder) |
| :name | 文件名称 |
| :post_title | 文章标题 |
| :id | 文章 ID (not persistent across cache reset) |
| :category | 分类。如果文章没有分类,则是 default_category 配置信息。 |
| :hash | SHA1 hash of filename (same as :title) and date (12-hexadecimal) |
758

被折叠的 条评论
为什么被折叠?



