水月小筑

@叶知秋

今儿的风,甚是喧嚣。

  • 北京 | 东城
  • https://yezheng.fun
  • 网站已被续

叶知秋

  • 折腾
  • 1406 字

jekyll折腾记

这十几天,把正业都荒废了,一直在漫无边际没头没脑地“搞博客”。我一直钟情的静态博客平台是HEXO,而就在前几天(具体忘了是什么原因)让我决定去尝试一下jekyll。

按照官方文档,终于把环境配置好了,虽然过程中还是出了些问题,按着文档来也不让你一帆风顺,见怪不怪了。又尝试了官网上大量自认为好看的主题,一番下来后,jekyll给我的感觉就是很出乎意料,很不方便,与HEXO相去甚远,加之那些官网主题也并没有多么惊艳,于是就放弃了使用jekyll来折腾。

18号晚上,那天我又在尝试搭WordPress博客,我正在某主题网站看WP主题,机缘巧合之下,让我看到了叶夕青兮,有意思的是该博客主题 persephone并非是WP主题,而是基于jekyll平台,而这个网站设计得实在是太惊艳了,当时我就心动了,爱了爱了!折腾jekyll的动力立刻又有了。

因为上次已经了解过了,且环境也配置好了,这一次把主题源代码文件撸下来以后只要几个命令就好了:

bundle install
bundle exec jekyll serve

当我把一切调好,把它部署到免费静态博客托管平台(GitHub、Coding、码云)上时,本地localhost运行良好而到了远端就不行了。

一开始是网站根目录设置不对。GitHub上如果项目名称不是username.github.io,pages就会分配一个username.github.io/reponame/这样的域名;在coding上,只要账号不是第一次部署博客到pages服务,域名也会是username.coding.me/reponame/这样的;而码云无论你是不是第一次,它的pages服务永远分配一个username.gitee.io/reponame/的域名。 (19年12月更新:码云上reponame取跟username一样就不会多出后面的二级域名了)。这些问题都可以通过在站点目录下_cinfig.yml文件中添加baseurl参数解决。而后面出现的问题就触及我的知识盲区了,上网查也没查出个所以然,最终我选择了绕道走。

第一个问题是因为根目录链接不对,网站加载不出js、css导致网页内容乱码了而已,而解决了该问题后,直接进不去网站了,进度条永远在不停地转圈,打开F12调试,看到是main.js文件中某某结构出了问题,我直接把报错信息输入搜索引擎也没找到类似问题,就因为这个无法解决的问题,这个博客搭建也搁浅到了19号,我实在不甘心放弃,因为那个主题实在是太好看了,19号上午,因为一个突发奇想导致我能直接绕过了那个bug,成功搭站。

首先得说明一下,我不知 jekyll 的机制是怎样的,Hexo 是会生成一个public文件夹,而 Hugo 也会生成诸如 public_site等文件夹,我遍观网上的教程,有的说把生成的文件夹推送到云端部署,有的则说把整个生产文件夹推送上去,昨天的我信奉的就是后者,之前折腾时用过的主题都没事,但是 persephone 这个主题就失败了。

之前折腾的时候,有个主题就是通过本地 bundle exec jekyll serve,得到_site文件夹,然后是将该文件夹中内容部署到远端服务器。想到这,我就拿它也试了试,居然……成功了!

我不是搞技术的,对这个bug产生原因一点不感兴趣,能用就行!对了,原作者直接推送整个文件夹一点事都无,想到这,更不想深究了,因为不是人家代码的问题,那么问题所在只会更隐蔽更难找……

以上就是本次捯饰本站博客的大致历程,有一些细节略去不提,因为我自己也不大记得了~