部署Netlify站点博客

时间:2022-09-15 22:56:24

Netlify站点部署静态博客

今天尝试把站点部署在Netlify上,因为部署在GitHub Pages上,国内访问速度太慢了,所以就尝试一下别的站点,部署成功之后发现速度还是不太行,后边继续找找原因

Netlify 部署的地址在这里

下图展示GitHub Pages站点和Netlify站点的全国网速对比(数据来源站长工具

部署Netlify站点博客

总的来说,效果比GitHub Pages站点速度要快

问题记录

部署的时候,有几个问题,记录一下:

  1. 部署时告警信息直接就阻塞了部署进程,导致部署失败,猜测是一些类似代码扫描工具使然,然后我只得先把造成告警的 hexo-lazyload 插件给剔除掉,然后就可以了(还不了解Netlify的工作原理,只是临时处理方案)

以下是Netlify部署的部分日志信息

2:13:23 PM: $ hexo generate
2:13:23 PM: INFO  Validating config
2:13:24 PM: INFO  Start processing
2:13:24 PM: INFO  neat the css: /opt/build/repo/source/_data/styles.styl [ 19.27% saved]
2:13:24 PM: INFO  neat the css: /opt/build/repo/source/_data/variables.styl [ NaN% saved]
2:13:34 PM: WARN  request remote img fail https://pic.imgdb.cn/item/63184ff316f2c2beb1e26ab9.png
2:48:42 PM: Build exceeded maximum allowed runtime
  1. Netlify部署成功之后,由于资源路径不正确,导致NexT主题不生效。我原先设置了路径 root: /blog/ ,然后就重新添加了一条记录,解析了一个新的二级域名用来访问博客,同时,这也给我带来了另外两个问题,如下:

  2. 原先站点 https://home.i-xiao.space/blog/ 上的不蒜子数据丢失了,重新初始化数据了。

“不蒜子”允许初始化首次数据,但是需要注册登录,目前“不蒜子”暂停了注册功能,那就先这样吧

  1. GitHub Pages站点不能正常访问。 给blog仓库设置 GitHub Pages,绑定心得个人二级域名,在发布分支gh-pages下面生成一个CNAME文件,用来存放个人二级域名。存在的问题是:hexo deploy 是把master分支下生成的public目录下的静态文件推送并覆盖gh-pages分支下的文件,因为每次生成的public目录下没有CNAME文件,所以CNAME文件就被冲掉了,造成的结果就是,每次自动部署都会把之前绑定的个人域名“解绑”,导致网站不能正常访问
  • 解决4:

方法一: 本地master分支,在source目录下新建一个CNAME文件,存放要绑定的域名,等到执行hexo g的时候,会把source目录下的文件“揍”到public下,然后推送到gh-pages分支上

xxx.xml 网站地图也可以用同样的方式放置到source目录

方法二: 理论上也可以在generateAfter事件中使用node处理

CNAME配置及工作原理探究

配置主要有两步:

  1. 个人域名增加 CNAME(可以理解为IP昵称(域名的)的昵称(CNAME)) 记录,记录值指向托管网站分配的域名(不带 http(s)????/),添加完成之后,记得开启解析(需要等待一会,可以通过 ping 二级域名的方式检查是否解析成功)

  2. 托管网站上配置第一步添加的二级域名,起到桥接的作用

整体实现的效果就是“互联互通”。类似与路由器转发的工作,每个路由器上只存储相邻相近的路由器的ip,整合起来就是一张大网,任何已知网路请求都会经由路由器转发到达目的主机

当访问配置的二级域名时,由于我在域名管理平台上配置的 DNS解析到 托管网站的 域名,由该域名指向IP

部署Netlify站点博客


部署Netlify站点博客

我是 甜点cc

热爱前端,也喜欢专研各种跟本职工作关系不大的技术,技术、产品兴趣广泛且浓厚,等待着一个创业机会。主要致力于分享实用技术干货,希望可以给一小部分人一些微小帮助。

我排斥“新人迷茫,老人看戏”的现象,希望能和大家一起努力破局。营造一个良好的技术氛围,为了个人、为了我国的数字化转型、互联网物联网技术、数字经济发展做一点点贡献。数风流人物还看中国、看今朝、看你我。