Hexo的一些坑

最近在研究Angular4,将Mac上的nodenpm都升级为了最新版本,当使用hexo的时候发现报错,当即决定将hexo也升级最新版本。

升级完hexo,将所有的博客迁移过来,执行hexo ghexo s,很顺利,没有任何问题,马上执行hexo d发布到服务器,发现页面显示如下图:

查看本地环境的public目录,发现生成的html页面的代码就如上图,但本地运行又是正常的。一个直接的反应就是,上面的代码是在运行时依赖node解析成html页面的。

sshvps上查看node版本,发现很低,一通折腾升级node版本,最终将vpsnodenpm版本升级到和本地环境一致,发现网站依然不能正常运行。

尝试将本地public目录中的文件删掉,发现本地环境依然正常运行,这时才恍然大悟,本地执行hexo s,并不是执行的public目录中的内容,而是动态编译运行的。

重新hexo init hblog,安装步骤重新来了一个,执行hexo g 发现public目录中生成的html已经正常,hexo d发布到服务器,一切OK。

总结

  • 对执行原理的不了解,导致走了很多弯路,瞎折腾了翻
  • hexo本地运行并不是运行的public中的内容
  • 服务器端无需安装node,也可以运行hexo
  • 至今还不知道开始生成的html不正确是什么原因导致