升级 Hexo 6.3.0 出现的常见问题整理(附 Hexo 升级步骤)

问题1:文章链接错误,修改了文章链接逻辑

在4.2.1 我的 _confiy.yml 配置是 permalink: :title/ 文章配置是 permalink: log/478 生成的链接是 https://yijile.com/log/ alias: log/478 生成的链接是 https://yijile.com/log.html478.html

升级 6.3.0 后 生成的链接是 https://yijile.com/log/478 ,在文章列表、边栏等位置的文章标题指向的是这个链接,点击后会触发下载,将页面下载到电脑保存的文件名为 478

问题解析:文章链接配置层次分明

旧版:_confiy.yml 作为默认方案,如果文章中配置了 permalink: log/478/ 会存在两个配置混合的情况 https://yijile.com/log/ alias: log/478/ 会存在两个配置混合的情况 https://yijile.com/log.html478.html 执行

新版:_confiy.yml 作为默认方案,如果文章中配置了 permalink: log/478/ 就完全按文章中配置的 https://yijile.com/log/ alias: log/478/ 就完全按文章中配置的 https://yijile.com/log.html478 执行

新版更规范,不会出现凌乱的链接。

Read More 链接异常

部分函数使用更多限制,更加规范

旧版链接:https://yijile.com/log/478.html#more

新版链接:http://log/478.html#more or log/478/#more

无论 permalink: 是否以 / 开始,都会出现这种情况。

旧版主题模板中使用的代码

 <% if (theme.excerpt_link) { %>
    <p class="article-more-link">
      <a href="<%- config.root %><%- post.path %>#more"><%= theme.excerpt_link %></a>
    </p>
  <% } %>

正确用法

<% if (theme.excerpt_link) { %>
    <p class="article-more-link">
      <a href="<%- url_for(post.path) %>#more"><%= theme.excerpt_link %></a>
    </p>
  <% } %>

_confiy.yml 文件中配置 external_link: true 会引起报错,所以需要注释掉或者删除。

在6.3.0新版如果文章链接需要在新窗口打开就只能通过主题模板控制或者插件控制。

Gitlab pages ci cd 无法构建部署

node.js 版本过低所致,修改 .gitlab-ci.yml 文件中 node 版本号可解决该问题

修改前,官方标准配置

image: node:10.15.3
image: node:16.17.1

Hexo 升级到 6.3.0 的方法和步骤

  1. 检查版本 npm outdated,如果没有输出内容表示当前为最新版
  2. 指定版本,修改 package.json 文件中 dependencies 部分对应版本号
  3. 执行更新命令 npm install --save
  4. 更新完成后执行当前版本命令 hexo version,确认更新结果

yijile 的 package.json 配置参考图

转载请注明转自:一极乐https://yijile.com/log/131/