Netlify站点部署静态博客
今天尝试把站点部署在Netlify上,因为部署在GitHub Pages上,国内访问速度太慢了,所以就尝试一下别的站点,部署成功之后发现速度还是不太行,后边继续找找原因
Netlify 部署的地址在这里
下图展示GitHub Pages
站点和Netlify
站点的全国网速对比(数据来源站长工具)
总的来说,效果比GitHub Pages
站点速度要快
问题记录
部署的时候,有几个问题,记录一下:
- 部署时告警信息直接就阻塞了部署进程,导致部署失败,猜测是一些类似代码扫描工具使然,然后我只得先把造成告警的
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
Netlify
部署成功之后,由于资源路径不正确,导致NexT
主题不生效。我原先设置了路径root: /blog/
,然后就重新添加了一条记录,解析了一个新的二级域名用来访问博客,同时,这也给我带来了另外两个问题,如下:
- 原先站点
https://home.i-xiao.space/blog/
上的不蒜子数据丢失了,重新初始化数据了。
- 原
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
配置及工作原理探究
配置主要有两步:
- 个人域名增加 CNAME(
可以理解为IP昵称(域名的)的昵称(CNAME)
) 记录,记录值指向托管网站分配的域名(不带 http(s)://),添加完成之后,记得开启解析(需要等待一会,可以通过 ping 二级域名的方式检查是否解析成功)
- 托管网站上配置第一步添加的二级域名,起到桥接的作用
整体实现的效果就是“互联互通”。类似与路由器转发的工作,每个路由器上只存储相邻相近的路由器的ip,整合起来就是一张大网,任何已知网路请求都会经由路由器转发到达目的主机
当访问配置的二级域名时,由于我在域名管理平台上配置的 DNS
解析到 托管网站的 域名,由该域名指向IP