Chiloh

Chiloh Wei

一个尝试理解世界,理解自己的人
jike
twitter

Hexo 博客發表時間隨更新變為更新時間的問題

近期,在更新完文章利用 Travis CI 自動部署後,偶然發現文章的發表時間隨著更新變為更新時間。對於這個問題,思考後暫時考慮問題出在 Travis CI 自動部署上,因為每次自動部署後時間都與部署時刻時間一致。

猜想驗證#

步驟(一)使用傳統 hexo g 和 hexo d 方法部署#

部署完成後發現文章發表時間與更新時間出現了變化,發表時間為 Tracis CI 自動部署建立好後的時間,而更新時間則為此次作變化後傳統部署後的時間,因此確定問題出現在 Travis CI 自動部署上。

步驟(二)檢查 Travis CI 自動部署文件#

打開 Travis CI 自動部署文件 .travis.yml 查看:

language: node_js
node_js: stable

cache:
  directories:
    - node_modules

before_install:
  - export TZ='Asia/Shanghai' # 更改時區
  - npm install hexo-cli -g

install:
  - npm install
  - npm install hexo-deployer-git --save

script:
  - hexo clean
  - hexo generate

after_script:
  - cd ./public
  - git init
  - git config user.name "xuezheng-wei"
  - git config user.email "[email protected]"
  - git add .
  - git commit -m "Travis CI Auto Updated"
  - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master

branches:
  only:
    - hexo
env:
 global:
   - GH_REF: github.com/xuezheng-wei/xuezheng-wei.github.io.git

發現其執行完 hexo generate 後不是直接執行 hexo deploy ,而是切換到 hexo 分支 public 目錄下將更新的文件強制提交到 master 分支,故可能無法區分發表時間和更新時間。

步驟(三)解決方法#

(1)在 .travis.yml 文件中加入 hexo deploy 以便自動部署時可以執行此命令,但添加 hexo deploy 後存在問題,access 接入報錯,且有 token 私鑰洩漏風險。處理比較麻煩,故未採用此解決方法。
(2)更新文章時在 front-matter 中加入 date 來固定文章建立日期。
(3)取消 Travis CI 自動部署,採用 hexo ghexo d 傳統方法上傳部署。

總結#

使用 Travis CI 自動部署 hexo 博客雖然在一定程度上簡化了上傳部署的步驟,但在 hexo 博客這塊僅僅是取代了傳統上傳部署的 hexo clean、hexo g、hexo d 等命令,作用有限。也可能是因為對 Travis CI 自動部署認知不夠,使用稍有障礙,因此考慮決定回用原傳統上傳部署手段。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。