最近公司网络比较艰苦,那天写了一个文章,执行hexo g -d,正常生成了public文件,但是一直发布不成功,记录一下我解决的过程
1. 问题产生操作步骤
文章写完
执行
hexo s --watch
预览页面效果,修改部分细节
执行
hexo g -d
出现错误提示,提示
1 | delete mode 100644 placeholder |
2. 尝试解决过程
2.1 尝试一
执行
hexo g
,public
文件夹生成成功执行
hexo d
,控制台出现错误提示和上文一样卒
2.2 尝试二
- 修改项目根文件夹下的
_config.yml
文件,修改请求地址属性名,将repository
修改为repo
。
修改前
1 |
|
修改后
1 |
|
执行
hexo g -d
,控制台出现错误提示和上文一样卒
2.3 尝试三
- 修改项目根文件夹下的
_config.yml
文件,请求仓库链接方式,将原有的http
请求链接修改为SSH
请求模式。
修改前
1 |
|
修改后
1 |
|
- 执行
hexo g -d
,出现错误提示。
1 | Permission denied (publickey). |
- 卒
2.4 尝试四
保存上文修改修改项目根文件夹下的
_config.yml
文件中Deployment
请求为SSH
请求模式重新生成
SSH
在控制台执行
ssh-keygen-t rsa -C {你的邮箱地址}
会出现三次询问过程,一般就直接默认了
生成成功
1 | $ ssh-keygen-t rsa -C XXXX@XXXX.com |
访问上文的公钥地址
c/Users/Administrator/.ssh/id_rsa
复制
id_rsa.pub
文件中内容。访问
https://github.com/settings/keys
,选择New SSH Key
按钮在
SSH keys / Add new
中,主要需要填写两个内容,一个是将要新建的SSH
的title
,相当于这个SSH
的alias
,用于区分不同SSH
;一个是需要填写的SSH Key
内容。SSH Key
输入框中会有默认提示,Begins with 'ssh-rsa', 'ssh-dss', 'ssh-ed25519', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', or 'ecdsa-sha2-nistp521'
,即这个SSH Key
必须要以ssh-rsa
,ssh-dss
,ssh-ed25519
,ecdsa-sha2-nistp256
,ecdsa-sha2-nistp384
, 或者ecdsa-sha2-nistp521
。将从
id_rsa.pub
文件中复制的内容,粘贴到SSH Key
输入框。选择
Add SSH key
按钮github
新建SSH key
完成在本地编辑器中添加全局用户设置
1 | $ git config --global user.name {你的全局呢称} |
- 在本地编辑器控制台中进行验证
SSH
是否添加成功
1 | $ ssh -T git@github.com |
- 在
blog
所在项目根文件夹,执行hexo g -d
,执行一切顺利。
1 | INFO Deploy done:git |
3 总结
- 感觉在远程仓库这块,网络是个很大因素,决定你是否能够成功访问,和成功发布。
- 之前用http请求没感觉,现在网络不太好,就很明显了。
- http记得是基于TCP面向连接的,要求服务器可以保持持续连接状态
- 面向连接的请求,保证了数据的安全性,但是对于网络条件要求更高
- 但是这边SSH链接请求,似乎对网络条件要求低一些。