0%

使用Hexo搭建的Github Pages静态站点突然不能访问vendors目录下资源

一、现象描述

作者使用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命令部署静态站点的过程可描述为:

  1. 使用hexo generate命令生成静态站点所有文件,这些文件被置于public子目录下
  2. 使用hexo deploy命令进行具体部署。它首先清空.deploy_git子目录下所有以非.开头的文件,然后从public子目录下复制所有以非.开头的文件到.deploy_git子目录下。最后将.deploy_git子目录下除了.git文件之外的所有文件(包括其他以.开头的文件)提交到相应的Github Repository完成静态站点的部署

根据上述过程描述,我们可以在.deploy_git子目录下添加一个名为.nojekyll的文件,在具体部署时,该文件被提交到相应的Github Repository,从而使得能够正常使用Hexo生成的静态站点。

您的支持将鼓励我继续分享!