Github+Hexo绑定到Godaddy域名

本文最后更新于:7 个月前

前言


本着不折腾浑身难受的理念,按照教程绑定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来压缩图片。

总结


其实很多人已经在你前边走了一条路,但是你不走过去,你怎么知道沿途的风景呢?

参考文章



本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!