当网站安装了新插件或者修改了某配置,hexo g -d 之后打开网站发现不能正常显示的时候,
重命名网站目录
比如hexo 改为hexo00重新安装hexo
cnpm install hexo -g
新建hexo 目录
进入hexo目录
初始化Hexo
hexo init # 初始化必须在空文件夹中复制替换文件
将hexo00目录下的_config.yml 文件,source目录复制到hexo目录下,覆盖替换原文件和目录(一般这些文件不是导致出错的原因)
安装push工具
npm install hexo-deployer-git --save
安装主题及其依赖插件
网站保留3个主题 BlueLake 和 hexo-theme-spfk以及默认主题 landscape
git clone 这2个主题之后,将主题的配置文件_config.yml 替换为hexo00中的。以及BlueLake主题中BlueLake/_partial/footer.jade文件替换为原来的。(底部备案和『Hosted by Coding Pages』信息)重新部署
完成之后运行如下命令:
hexo clean && hexo g && hexo d
或者hexo g -d
即可恢复。
fatal: Could not read from remote repository.
致命:无法读取远程存储库。
Please make sure you have the correct access rights and the repository exists.
请确保你有正确的访问权限和存储库的存在。
出现这种错误,有可能在配置_config.yml的时候,
deploy:
type: git
repo: http://github.com/wapchief/wapchief.github.io.git
branch: master
repo:设置了SSH方式连接,在没有ssh证书的情况下是连接失败的。解决方法是把ssh,修改为https方式连接。
如果仍报错,把https改为http。
ERROR Deployer not found: git
未安装部署工具
执行安装命令:
npm install hexo-deployer-git --save
fatal: unable to stat 'node_modules/hexo-deployer-git/node_modules/hexo-fs/node_modules/chokidar/node_modules/anymatch/node_modules/micromatch/node_modules/braces/node_modules/expand-range/node_modules/fill-range/node_modules/is-number/LICENSE': Filename too long
这种情况一般是在执行
git add .
git push
git commit
的时候会出现。
报错提示名字超长,或者路径超范围。
解决的方法有很多,选择升级git。
或者配置git
git config core.longpaths true
相关工具问题
因为使用hexo+github需要用到多个工具。有时候不确定是不是安装的问题可以通过下面的命令测试是否安装成功
node -v
npm -v
git --version
hexo -v
如果都能正常显示版本信息,证明安装都没问题
页面不能正常显示,或者404
检查根目录下的_config.yml文件是否配置正确,注意变量:后要加空格。
部署的时候,是根据branch判断部署的目录。
部署成功后,无需再使用git命令提交远程,已经自动在远程生成了页面文件。
还有种可能是主题有问题,关于主题可以去官网找,也可以去github,搜hexo theme。一般只要是用来搭建博客的都会有使用教程。
关于分支和更换电脑问题
由于安装hexo的时候只在本地生成。而部署的时候只是把public目录里的文件和相关配置上传到github。
要想在远程也能管理,需要创建新的分支来存放源代码。
或者通过其他第三方托管平台来托管源码,像coding,码云等都可以。
在github上托管是公共的,如果需要安全也可以这个办法。
如果使用github分支,则使用
git fetch && git checkout hexo
在本地创建一个新的分支并推送到远程仓库,
然后
git add .
git commit -m '提交说明'
//强制提交到hexo分支
git push -f origin hexo
注意:在其他设备上克隆的时候,建议克隆下来之后把隐藏文件.deploy_git文件删除,否则容易冲突。
本地预览时报错INFO Start processingERROR Theme config load failed.ERROR Process failed: _config.yml......是由于主题配置文件 _config.yml中:1.修改配置时,某个关键字忘了删去注释;如友情链接中的social(致命!曾为了它找了一个多小时的错)#social: GitHub: https://github.com/yourname || github应改为:social: GitHub: https://github.com/yourname || github2.修改配置时,多删去了注释如设定主题# Schemes#scheme: Muse#scheme: Mistscheme: Piscesscheme: Gemini应改为:# Schemes#scheme: Muse#scheme: Mistscheme: Pisces#scheme: Gemini