Hexo+Coding+Github部署个人博客Error全集

前言

终于历经两天把我的Hexo+Coding+Github双部署个人博客网站给搭建好了,并将之前的博客进行了转移,期间真是历经磨难,泪崩了简直要。各种各样的问题,网上有些百度的到,但也有一些百度不到的,或者说讲述的比较模糊的,我在这将所有遇到的困难和解决方法都记录了下来。

1 解决ERROR Deployer not found: git/baidu_url_submit问题

问题显示:
1
原因:

  1. 两个名字搞混淆,deploy 的type名baidu_url_submitter和百度站点推送配置名baidu_url_submit
  2. 检测相应的插件是否安装npm install hexo-baidu-url-submit –save
    正确的站点配置方式为(需要注意YUML格式的编写):
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    deploy:
    - type: git
    branch: master
    repo:
    github: XXXX你的github
    coding: XXXX你的Coding

    - type: baidu_url_submitter
    # baidu_url_submit
    baidu_url_submit:
    count: 20 # 提交最新的一个链接
    host: # 在百度站长平台中注册的域名
    token: # 请注意这是您的秘钥, 所以请不要把博客源代码发布在公众仓库里!
    path: baidu_urls.txt # 文本文档的地址, 新链接会保存在此文本文档里
2 解决百度站点添加站点时html验证问题

问题描述: html文件验证错误
方法:将在百度站点下载对应的html文件放在hexo/source/文件夹后需要修改该html文件,需要打开该Html文件在头部添加,同理谷歌站点html验证时候也如此。
原因: 不加layout: false,hexo会将html进行相应的渲染,添加其他网页信息元素。

1
2
3
---
layout: false
---

3 解决Hexo同时git提交文件至Coding和Github双公私钥对SSH验证问题

问题描述: 一般来说,git提交文件至Coding和Github时候需要SSH验证,这时候需要在电脑上使用ssh工具生成公钥和私钥对,将对应的公钥提交到对应的Coding和Github(私钥自己保存,原因对自己电脑端和Coding或Github的通信进行加密,由服务端反馈回来的信息只有自己能使用私钥解开),所以此时需要生成两对公私钥对,这时候需要配置好这两对公私钥对,公私钥对会覆盖造成错误。
最后解决的办法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# step1
ssh-keygen -t rsa -C "your_email@example.com" #github/coding注册邮箱
# step2 成功后显示:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxx/.ssh/id_rsa):
#第一次输入/Users/xxx/.ssh/id_rsa_coding
#第二次输入/Users/xxx/.ssh/id_rsa_github
#step3 进入.ssh文件夹,创建config文件,并配置
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github

# coding.net
Host git.coding.net
User youremail.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_coding

4 解决Hexo 文章添加Gitment评论问题

问题描述: 总共遇3大坑,需要严格按照步骤来
1Error: Not Found问题
2Error: Comments Not Initialized
3Error:validation failed
最后解决的办法:
step1 在hexo/themes/next/_config.yml中对Gitment进行设置

1
2
3
4
5
6
7
8
9
10
11
12
gitment:
enable: true
mint: true # RECOMMEND, A mint on Gitment, to support count, language and proxy_gateway
count: true # Show comments count in post meta area
lazy: true # Comments lazy loading with a button
cleanly: false # Hide 'Powered by ...' on footer, and more
language: # Force language, or auto switch by theme
github_user: JianWenJun#我的博客位置为JianWenJun/JianWenJun.github.io
github_repo: JianWenJun.github.io#The repo you use to store Gitment comments
#在https://github.com/settings/developers配置自己的OAuth Apps,获取client_id和client_secret
client_id: **** # Github client id for the Gitment
client_secret: ***** # EITHER this or proxy_gateway, Github access secret token for the Gitment

Step2 如何此时还出现Error: Not Found 则进入打开hexo/themes/next/layout/_third-party/comments/gitment.swig文件,手动设置参数:找到代码var gitment = new 处,对上述_config中的gitment配置进行手动添加。
Step3 对于问题Error: Comments Not Initialized 只要参数github_user和github_repo和client_id和client_secret参数设置正确需要稍等一会即可,第一次需要跳转github进行登录以注册应用的账号和密码登录。可能第一次登录会有些问题,需要再次登录即可。
Step4 对于问题Error:validation failed,主要是github上的issues提交的id有字符限制。因为gitment是基于issues来发布评论的。id即为var gitment = new 变量gitment的参数,在hexo/themes/next/layout/_third-party/comments/gitment.swig中,将id字符设置小一点即可,如id: '<%= page.date %>'因为id也用于区分不同的文章,所以需要唯一。
可参考这条解决方法

5 解决Hexo之Coding域名绑定申请SSL证书失败(这里也是要吐血的问题)

问题描述: 这里我的DNS域名解析模式是Coding(国内)+Github(国外),也就是说国外线路访问域名jianwenjun.xyz会跳转至Github上来访问博客资源。国内线路访问域名jianwenjun.xyz会跳转至Coding来访问博客资源。然而Coding上Page服务绑定自定义的域名时候,申请SSL的条件要求是:
8
这就很难受了,国外的也要能访问Coding服务器,但是我设置的Coding+Github双部署的目的就是Coding国内而Github国外——这就矛盾了,导致证书申请不下来。
10
解决过程
step1 确保:你的需要绑定的自定义的域名需要在域名解析是将CNAME记录到pages.coding.me
step2.1:要保证DNS域名解析模式是Coding(国内)+Github(国外)的情况的话,就得为域名单独申请SSL证书,在腾讯云或者阿里云里可以免费为域名申请证书。待申请SSL验证完毕。即可成功显示但是有日期限制:
9
step 2.2:如果不要保证DNS域名解析模式是Coding(国内)+Github(国外)的情况的话,可以将Coding设置为默认或者国外。也能添加成功。
10

6 解决Hexo之谷歌站点添加站点地图问题(这里真是要吐血半斤血)

问题描述:
NO1.使用html文件,验证站点域名,单独在浏览器访问https://jianwenjun.xyz/google142f2e515691ce48.html 没问题,可是进行验证提示找不到html验证文件。
No2.添加sitemap.xml站点地图出现,类似验证html的问题,浏览器单独访问没问题,可是测试就显示错误找不到文件。
1
解决过程
对于NO1 可以使用其他验证方式例如DNS解析验证,但是没有解决根本性的问题。
step1 确保:先检测JianWenJun.github.io该站点在谷歌站点平台能正常使用HTML验证,即提交JianWenJun.github.io站点到谷歌站点平台测试。
step2 确保: 再检测Github项目的Setting的Github Pages是否与你自己的域名绑定好。
2
step3 确保:检测你的DNS域名解析,这里我使用的是Coding(国内)+Github(国外)话说这种模式国内访问网站速度回快些,Coding(国内)+Github(国外)此模式下能将站点地图添加至谷歌站点平台。能将站点添加至谷歌站点平台的前提是国外的线路能访问到网站。

DNS解析做了如下测试:
测试1—— Coding(国内)+Github(国外):——添加测试成功,说明国外能访问到github上的资源。
谷歌平台站点添加测试图:
3
国内访问网站抓取图:访问的是Coding Pages的服务器
4
测试2—— Github(默认) +coding 国内 ——情况等同于测试一
测试3—— Github(国内 + 暂停使用coding 国内 ——此时国外不能访问要添加的站点jianwenjun.xyz上的github的资源。
谷歌平台站点添加测试图:出现错误
5
国内访问网站抓取图:该IP对应的是Github的服务器的IP
6
测试4—— Github(国外 + 暂停使用coding 国内) ——此时国外能访问要添加的站点jianwenjun.xyz上的github的资源。但此时浏览器中加载不出jianwenjun.xyz网站的信息即国内访问不了了。
谷歌平台站点添加测试图:
1
测试5—— Github(默认 + 暂停使用coding 国内)——此时国外能访问说明可以在平台上添加站点,国内也能访问,但是访问的服务器地址是GIthub而不是Coding。
总结step3最好的DNS域名解析的方式是Coding(国内)+Github(默认)的形式,这样能做到国内线路访问的是Coding上部署的博客资源,国外线路访问的是Github上的资源,而当Coding上出现问题的时候,也能访问到Github上的博客资源。
测试这些真实太费时间了,因为DNSpod对域名解析后有生效时间,多次测试花费时间不少,还是在对问题的解决的心的执着,就这点给个赞吧!!!!(哈哈哈)

开心的写作吧

小简铺子

-------------本文结束感谢您的阅读-------------

本文标题:Hexo+Coding+Github部署个人博客Error全集

文章作者:ComeOnJian

发布时间:2018年04月10日 - 17:04

最后更新:2018年12月31日 - 18:12

原始链接:https://jianwenjun.xyz/2018/04/10/Hexo-Coding-Github部署个人博客Error全集/

许可协议: 转载请保留原文链接及作者。

显示 Gitment 评论