一、现象描述
作者使用Hexo静态站点生成器搭建了一个基于Github Pages服务的静态站点,一直都能够正常使用。昨天突然发现不能正常使用,提示信息是vendors
目录下的资源获取不了,报404错误。
浏览器控制台返回信息如下所示:
1 | GET 404 https://dslztx.github.io/blog/vendors/fancybox/source/jquery.fancybox.css?v=2.1.5 |
二、原因
通过向Github客服求助,得知的具体原因和解决方案是:
Github Pages服务最近升级了静态站点生成器Jekyll的版本(Github Pages服务默认支持Jekyll静态站点生成器),最新版本是v3.3。该版本默认忽略vendors
目录,因此其下的资源都不能被顺利获取到。
要想解决该问题,可通过在根目录下添加一个名为.nojekyll
的文件,从而使得能够顺利获取vendors
目录下的资源,并且正常使用非Jekyll生成的静态站点。
三、具体解决方案
使用Hexo命令部署静态站点的过程可描述为:
- 使用
hexo generate
命令生成静态站点所有文件,这些文件被置于public
子目录下 - 使用
hexo deploy
命令进行具体部署。它首先清空.deploy_git
子目录下所有以非.
开头的文件,然后从public
子目录下复制所有以非.
开头的文件到.deploy_git
子目录下。最后将.deploy_git
子目录下除了.git
文件之外的所有文件(包括其他以.
开头的文件)提交到相应的Github Repository完成静态站点的部署
根据上述过程描述,我们可以在.deploy_git
子目录下添加一个名为.nojekyll
的文件,在具体部署时,该文件被提交到相应的Github Repository,从而使得能够正常使用Hexo生成的静态站点。