Github+Hexo绑定到Godaddy域名
本文最后更新于:2 年前
前言
本着不折腾浑身难受的理念,按照教程绑定GitHub上的个人博客到Godaddy域名[1]做了一次域名解析,发现难倒是不难,就是访问速度变慢了很多。后边再想想要不要CDN加速吧,反正现在先用着。哈哈~将流程记录下来。
实现过程
1. 首先在Godaddy官网购买域名
2. 配置GitHub
在Hexo的source目录下创建CNAME文件将域名写进去。之后部署项目。
hexo g
hexo d
如果你是用 hexo 框架搭建博客并部署到 Github Pages 上: 每次hexo g hexo d 后会把你的博客所在目录下 public 文件夹里的东西都推到 Github Pages 仓库上,并且把 CNAME 文件覆盖掉,解决这个问题可以直接把CNAME文件添加到source文件夹里,这样每次推的时候就不用担心仓库里的 CNAME 文件被覆盖掉了。
折腾的时候放在主目录提交一次删一次。。坑~~
还有一种方式是:在网站的Github项目上,点击设置Settings,找到Custom domain,填入申请的域名,并保存。这样也会在Github项目的根目录看到这个文件,但是当你在每次部署项目之后,这个CNAME文件都会消失,本质上相当于你新建的CNAME放在了本地Github项目的根目录了,而不是在source文件夹下。
3. 向你的 DNS 配置中添加 3 条记录(在域名解析提供商,下面以dnspod为例)
Host(主机记录) | 记录类型 | Points To(记录值) |
---|---|---|
@ | A | 192.30.252.153 |
@ | A | 192.30.252.154 |
www | CNAME | username.github.io |
4. 去 GoDaddy 修改 DNS 地址
具体过程去看源帖吧。在更改域名服务器的时候我用的是DNSPod提供的,一开始不会生效,等一会儿就好了。最后就能打开了。
5. 优化参考性及可行性
在帖子[2]发现博客部署在GitHub Pages上,从国内打开访问速度很慢,我第一感觉就是图片加载很慢了。
过慢的访问速度会使得用户在访问网站的时候失去耐心,导致有些用户可能会直接关闭你的网站
我十分认同这样的理念,但是CDN一开始我就没考虑,因为博客刚刚起步,本来就没有什么访客,所以我着眼于图片压缩。
一是压缩图片的尺寸。
二是压缩图片的分辨率。
6. 不怂就是干,用python来实现一波。
因为这种脚本网上肯定多得很,直接参考了一下这个帖子[3]写了一下。
from PIL import Image
import shutil
import os
class Graphics:
@classmethod
def resize_by_height(cls, height):
"""按照高度进行所需比例缩放"""
im = Image.open(infile)
(x, y) = im.size
x_s = int(float(x)/float(y) * height)
y_s = height
out = im.resize((x_s, y_s), Image.ANTIALIAS)
out.save(outfile, quality=0.7)
print("完成")
@classmethod
def resize_by_size(cls, size):
"""按照生成图片文件大小进行处理(单位KB)"""
size *= 1024
im = Image.open(infile)
size_tmp = os.path.getsize(infile)
q = 100
while size_tmp > size and q > 0:
print(q)
out = im.resize(im.size, Image.ANTIALIAS)
out.save(outfile, quality=q)
size_tmp = os.path.getsize(outfile)
q -= 5
if q == 100:
shutil.copy(infile, outfile)
print("完成")
if __name__ == "__main__":
while True:
infile = input("请输入你的图片路径: >>")
if infile == "exit":
break
dir_path = os.path.dirname(infile)
base_name = os.path.basename(infile)
tmp_path = os.path.join(dir_path, 'tmp')
if not os.path.isdir(tmp_path):
os.mkdir(tmp_path)
outfile = os.path.join(tmp_path, base_name)
mode = input("请输入你要进行的模式(1、按高160等比缩小到指定尺寸;2、压缩图片size到300KB)")
if int(mode) == 1:
Graphics.resize_by_height(160)
else:
Graphics.resize_by_size(300)
测试了一波,还没有人家提到的站点做的一半好,承让了,直接使用TinyPNG来压缩图片。
总结
其实很多人已经在你前边走了一条路,但是你不走过去,你怎么知道沿途的风景呢?