image-20211224230053576

针对常见的远程仓库:githubgitee,它们都提供了Pages服务,可以通过建立WEB页面的仓库,并在其中存放网页的有关元素,通过服务端的处理与域名分配,成为人们可以访问的公共页面,简而言之,就是用别人的服务器和域名托管并展示自己的网站,本文选取的案例是基于hexo框架的博客部署

标题:在Github或Gitee上部署网站

仓库建立与部署

首先,要在远程仓库网址上建立部署页面的仓库,并选用git等工具进行推送

  1. 国际惯例,创建git仓库,地址添加到本地仓库的remote

    • 如果使用github部署网站,建议将仓库命名为[username].github.io

    • 本文使用了hexo框架搭建网站,需要将git仓库的地址与对应分支填到_config.yml配置文件的#Deployment配置中

  2. 在本地编译完成后,利用hexo将博客根目录下的文件部署到远程仓库

    hexo d
    

    ddeploy的简写,这里部署之后远程仓库会单独跟踪页面的提交与变化,节省本地的空间)

    如果是win10系统,还需要安装模块hexo-deployer-git,使用git bashhexo的部署目录使用如下命令:

    cnpm install --save hexo-deployer-git
    

    此时,如果在nodejs的目录下进行安装,则回到hexo目录之后会出现部署工具git无法识别的报错

  3. 使用hexo部署的过程中,部署d只会提交public/目录下的改动,如果想保留README.md这一框架不会自动生成的内容,有两种方法:

    1. 慎用hexo clean,直接将README.md放入public/ 目录
    2. 参考这篇教程,设置skip_render,较为麻烦
  4. 不同系统的hexo工具部署同一仓库后,似乎会强制推送来清理远程的仓库,去掉没必要的历史提交

  5. 针对更一般的情景,可以直接在网站的根目录下初始化git仓库并提交到远程仓库

发布到gitee

  1. gitee上申请开通Gitee Pages服务,进入仓库后,点选上方菜单栏的”服务“->”Gitee Pages“,提交个人信息进行审核

    这里的实名认证很不方便,经过比较之后我更推荐灵活好用的github,而且.github.io域名的网址在大陆访问同样迅速

  2. 审核通过后,选择部署分支(这里的服务直接和仓库对应),部署目录可以为空,这样仓库里的所有页面和文件都可以用于博客提供访问

    需要注意的是点选强制使用HTTPS,否则会出现上一节#URL部分说的访问博客时URL错误的问题

  3. 点击更新,就能将仓库里的博客页面用于展示了,gitee也会提供URL。

    理论上每次仓库部署之后,都要再次点击更新

  4. 需要注意的是,由于展示的是静态网页,一般会被浏览器缓存,因此博文更新后访问博客看到的不一定是最新版本,需要使用F5刷新,或是Shift+F5来强制刷新缓存。在chrome上一个简便的解决方法是安装扩展Classic Cache Killer并启用,在加载页面前先清空缓存,从而每次都能看到改动

发布到github

  1. github上的Pages服务开通非常方便,前提是建立了名为[username].github.io的仓库,而且这个仓库的可见性为public

    如果想要使用其他的域名来访问个人博客,或者建立其他名字的仓库来部署网站,可以使用这篇教程里的工具

  2. 仓库部署网页完毕后,可以在仓库的Settings->Pages里面看到开通Pages服务的有关说明,如果使用步骤1的仓库名,就可以直接在URL进行访问

    一些额外的工作是选择Source,也就是网页根目录来自仓库的哪个分支

  3. 还可以自定义域名、主题和https选项,在步骤1的前提下这些都可以保留默认了

参考教程

使用Gitee+Hexo搭建个人博客

Windows环境搭建hexo博客部署到GitHub上

如何彻底禁用Chrome浏览器的缓存功能

Quickstart for GitHub Pages

hexo保留README.md之设置skip_render

将 Hexo 部署到 GitHub Pages