解决Hexo clean导致CNAME文件被删问题

问题描述

Hexo个人博客绑定域名这篇文章中我们介绍了Hexo如何绑定域名

最后需要在GitHub项目的根目录创建一个叫CNAME的文件,文件的内容为我们绑定的域名,详情见这篇文章,这里就不再赘述了

一开始我是把CNAME文件直接放在hexo/public目录下,但是每次执行hexo clean后就会被删除

后来改成在GitHub项目的Settings->Options->GitHub Pages的Custom domain中设置域名,如下图所示,但是这种方法和上面的其实没什么差别,也是会在GitHub项目根目录下(也就是Hexo的public目录下)生成一个CNAME文件,在执行hexo clean后该文件还是会被删除

imgClick and drag to move

解决方法

这是因为整个public文件夹是执行hexo g后生成的,若执行hexo clean会把整个public连同CNAME文件夹删掉,在重新执行hexo g后生成的public文件夹里肯定没有我们手动添加的CNAME文件

解决方法是把CNAME文件放在source文件夹下,而不是public文件夹,在执行hexo g命令是,会把source文件夹下的CNAME文件原原本本地复制到public文件夹下,即使执行hexo clean后,下次重新编译还是会复制过去,这样就解决了问题。

其实还有很多其他的文件如果想编译后放在public文件夹下,都可以先放source文件夹下,在hexo g编译后就会复制到public文件夹下。