Hexo博客(27)2019博客重构
2019.12 最新博客结构调整
放弃使用coding
放弃使用 coding git 仓库,原因如下:
1、Coding 被腾讯云收购后用着很别扭。
2、Coding 上部署的博客被封了,被告知有翻墙信息。
3、Coding 上的图床被封了。
4、GitHub 也有免费的私有库了
把 coding 上的项目全删了,以后其他项目也不再用 coding。
放弃使用pages部署博客
放弃使用 pages 发布博客,原因如下:
1、Coding Pages 上部署的静态博客被封了,原因是含有翻墙信息。
2、GitHub Pages 上的博客被原公司警告说在其上发现了公司内的代码,估计是把写的通用代码发到博客上时忘了删除公司相关的package包名,被扫描到了,以后一定要注意。
1、Coding Pages 上的图床也被封了,其实用国内的Pages当图床我一直有担心,因为很容易被人利用往上放不雅内容,早晚要被干掉,把图床迁到自己的服务器。
其实之前我特别讨厌那些用自己的服务器部署博客的,经常由于忘了续费或换域名什么的导致收藏的文章无法访问,所以即使我开始使用vps的一年多内也一直坚持用pages同步部署一份。
但现在自己的想法也变了,因为经过这几个事件发现Pages当博客也很受限,不如完全自己搭建,随心所欲想搞什么就搞什么。
打算完全放弃Pages,都放到自己的服务器上。
项目合并
我当博客用的有三个域名
http://masikkk.com/
http://madaimeng.com/
http://devgou.com/
之前这三个域名,每个对应两个项目,一个公开的hexo部署项目,一个私有的源码保存项目,GitHub和Coding上分别存一份,整了一堆,乱乎乎的。
现在都合并为一个项目 hexo,只存博客源码,只放在GitHub上,私有不公开,里面放 笔记/博客md源码、博客图片、nginx配置以及一些类似webhooks.js脚本之类的东西。
至于博客的html代码,不再往git存了,因为稍微一改就会导致好多文件变更,每次push很耗时。
图床由coding迁移到自己的vps服务器
之前一直用 coding 上的一个 public repo 做图床,见 Hexo博客(23)弃用七牛云图床改为git仓库图床 , 目前被封了,迁到自己的vps服务器中。
我这次图床迁移非常方便:
1、把 image 仓库放到 GitHub 上,单独搞一个项目也行,放到 hexo 博客项目中也行。我是直接放到 hexo 项目的一个子目录中了。在vps上把图片拉下来。
2、nginx 中配置 image.masikkk.com
解析到图片子目录
# image.开头的三级域名访问, 读取 hexo/public/image 目录下的图片
server {
listen 80;
server_name image.masikkk.com image.masikkk.com image.devgou.com;
location / {
root /home/centos/git/hexo/public/image;
}
}
3、修改域名解析,直接把域名 image.masikkk.com
改为解析到vps的ip即可
博客中代码完全不用动,这就是所有图片集中存储并使用链接访问的好处。
博客部署流程变更
之前无论是把博客放到 pages,还是在自己的vps服务器上,都是本地hexo g
生成好html代码后再push到git远程仓库中。
也尝试过在服务器端生成博客,奈何一直有个 Template render error Invalid or unexpected token 错误解决不了,这个周末把这问题解决了,见 Hexo博客(24)VPS中部署Hexo ,所以改为把生成博客html这个步骤放到服务端执行,也就是在vps上执行hexo g
命令。
这样的好处是客户端会变得很轻便,换了新电脑就算不装hexo环境也没问题,而且也解决了同时使用Windows和mac两个系统hexo环境不一致的问题。
同时,如果想本地调试hexo,也可以本机装一套hexo环境,互不影响。
为了简化部署, 用 node.js 做个 git webhooks, 一推送代码到 GitHub 就触发拉取最新代码并 hexo g
生成博客,然后 nginx 指向的静态代码目录中就是最新的博客html了。
参考笔记 Git-WebHooks钩子
更换电脑后需要做的
以下都是Windows环境
安装git
从Git官网https://git-scm.com/downloads 或 msysgit(Git for Windows) http://gitforwindows.org/ 下载并安装Git for Windows。安装后就有了Git Bash命令行工具。
安装Node.js
Windows 系统:
从 Node.js 官网 https://nodejs.org/en/ 下载并安装 Windows 版。
安装 Node.js 之后 Git Bash 中就有了 npm 命令。如果公司内访问外网需要配代理则给 npm 设置代理。
Mac 系统:brew install node
安装 nodejs 时会自动安装包管理工具 npm,安装完后执行 npm -v
和 node -v
能看到各自的版本号就说明安装成功。
ssh公钥私钥配置
生成 Github 的 ssh 公钥私钥对,把公钥填入对应网站页面,配置 ~/.ssh/config
,指定不同 host 所使用的密钥。
从Coding上clone博客源码到本地
假设本地已安装了 git 和 node.js,也已经有了 npm 环境,方法如前述。
从 GitHub 上克隆博客源码到本地 hexo 目录:
- 使用ssh方式
git clone git@github.com:masikkk/hexo.git
推荐使用ssh方式,可配合ssh密钥免密访问,不用每次输入密码。
- 使用https方式
git clone https://github.com/masikkk/hexo.git
如果使用https方式,由于我的博客源码备份项目是私有项目,clone时需要输入账号和密码。
安装hexo环境
然后进入 hexo 目录,依次执行下面命令:npm install -g hexo-cli
,安装hexo最新版npm install
,根据 package.json
安装依赖,因为 .gitignore
文件中配置了将 node_modules/
文件夹忽略,所以之前安装的插件并不会备份到远程 Git 仓库,但是我们备份了 package.json 文件,直接使用 npm install
可以根据 dependencies 配置安装所有的依赖包。
注:不需要单独安装 hexo-deployer-git,已经添加在 package.json 中,npm install
就一起安装了。
注意不需要执行 hexo init
指令,因为 hexo 需要的文件目录我们已经有了,如果执行 hexo init
会将已有文件覆盖掉。
上一篇 2020年运动记录
页面信息
location:
protocol
: host
: hostname
: origin
: pathname
: href
: document:
referrer
: navigator:
platform
: userAgent
: