当前位置: 首页 > Web前端 > JavaScript

Hexo搭建部署指南

时间:2023-03-27 01:11:11 JavaScript

1.Hexohexo官网安装使用:链接1.1全局安装hexo-cli创建hexo项目:npminstallhexo-cli-g安装完成后,可以在终端使用hexo命令现在,可以使用如下命令来创建hexo工程:hexoinithexo-blogcdhexo-blogyarninstall完成后工程目录如下:.├──_config.yml#网站基础配置,文档:https://hexo.io/zh-cn/docs/configuration├──package.json├──scaffolds#文章模板├──source|├──_草稿|└──_posts#你的markdown文章需要存放在这个目录下└──themes#存放主题源代码1.2安装第三方主题npm安装Hexo5.0.0或更高版本,可以使用npm安装主题,方便使用和升级方便,缺点是不能修改源代码。以hexo-theme-fluid主题为例,只需要执行:yarnaddhexo-theme-fluid#或者npminstall--savehexo-theme-fluid然后在blog目录下创建_config.fluid.yml即可。将主题的\_config.yml的内容复制进去。源码安装源码安装是老版本Hexo安装主题的方式。如果要修改主题源码,也可以直接修改。仍然以hexo-theme-fluid主题为例,在项目的Releases页面下载源码文件:下载解压后,在themes目录下创建fluid目录,将源码复制到该目录下,如如下:安装成功后应用主题最后需要在_config.yml中设置usedtheme为你下载的主题,找到主题配置项,修改为:#Extensions##Plugins:https://hexo.io/plugins/##Themes:https://hexo.io/themes/theme:Fluid配置第三方主题如果你通过npm安装主题,需要修改刚刚创建的_config.fluid.yml文件在blog目录下修改相关配置;如果您在源代码中安装了主题,则无需创建_config.fluid.yml文件。只需要修改/themes/fluid/_config.yml文件中的配置即可。注意:每个主题的配置文件名不同,主题的配置项也不同。您需要查看已安装主题的文档以了解详细信息。2.将Hexo部署到服务器如果你不想知道如何将网站部署到服务器,或者没有自己的服务器,可以跳过本章直接阅读第三节。2.1获取编译好的hexo静态文件可以使用hexo-cli的generate命令生成静态博客。hexo-cli已经把这条命令写进了package.json,所以可以使用npm/yarn命令调用构建命令:yarnbuild#或者npmrunbuild会在blog目录下生成一个public目录,就是编译好的静态博客通过Hexo,然后我们只需要将生成的静态文件部署到服务器即可。2.2Nginx服务器选择使用Nginx进行部署(当然也可以使用Caddy)。安装Nginx,首先要在服务器上安装nginx。以Ubuntu为例:sudoaptinstallnginxsystemctlenablenginx#设置nginx为启动项systemctlstartnginx#启用nginxsystemctlstatusnginx#查看nginxstatus官方完整安装文档:(链接)[https://www.nginx.com/resourc...]查看/修改Nginx配置可以使用vim命令查看nginx配置:vim/etc/nginx/nginx.conf2.3部署博客上传静态资源使用任何sftp工具,推荐使用FileZilla对于mac。连接上服务器后,进入服务器的/var/www/html目录,清除目录下原有文件,然后将刚才编译的hexo博客的静态文件上传到该目录下。之后我们就可以直接访问服务ip的80端口(也就是默认http的默认端口),就可以看到我们的网站了。但是一般的网站是不会直接用ip访问的,所以我们需要给我们的网站绑定一个域名。为网站绑定域名进入你的域名解析控制台,以腾讯云的DNSPod为例,点击添加记录,记录类型选择TypeA:记录值填写你的服务器ip,完成绑定域名和服务器。其中的“主机记录”就是二级域名的名称。如果你的域名是domain.xyz:当你写@时,访问domain.xyz的用户会解析到你的主机ip;当你写*时,用户hi.domain.xyz和oh.domain.xyz等任何二级域名都会被解析为你的主机ip(一般不会这样做)。当你写www的时候,用户访问www.domain.xyz会解析到你的ip主机ip域名绑定成功后,你就可以直接使用该域名访问你的博客了!3、使用github.io展示网站Github提供了展示静态网站的服务,即github.io。如果你对网速没有特殊要求(毕竟github.io的服务器在国外),建议你使用github.io来部署你的网站,可以省去很多部署步骤,而且可以完美配合GithubAction自动部署博客。3.1上传项目到Github在Hexo博客项目中初始化git仓库:gitinit然后在Github中新建一个项目仓库。上传到知乎。3.2打开GithubPages在执行这一步之前,新建一个没有任何代码的分支,命名为release:gitcheckout-breleaserm-f*#确保你当前的目录没问题,如果你不能掌握删除命令,就删除它手动将内容添加到当前文件gitpush--set-upstreamoriginrelease#上传发布分支在项目设置中找到GithubPages,将显示分支设置为你刚刚创建的发布分支:这意味着任何你上传的在版本中,可以使用域名.github.io访问html。我们切换回master分支,然后执行yarnbuild将生成的public目录下的文件复制一份,然后切换回release分支,将复制的内容粘贴到release分支,上传代码。如果没有错误,访问.github.io可以看到你的博客。3.3使用hexodeploy命令在上一步中,我们演示了如何手动将代码部署到GithubPages。实际上,Hexo提供了一个自动化的命令来帮助我们完成这个复杂的过程,那就是使用hexodeploy命令。但是使用前需要先安装hexo-deployer-heroku:yarnaddhexo-deployer-heroku#或者npminstallhexo-deployer-heroku--save然后在_config.yml中找到deploy配置项修改为:deploy:type:gitrepo:git@github.com:/.github.io.gitbranch:release然后执行yarndeploy自动编译博客,切换分支,替换等一系列操作静态文件和上传代码。4.使用GithubAction自动化部署。回过头来看上面的步骤,即使我们使用hexodeploy命令,其实也很麻烦。我们需要在本地等待漫长的编译过程,编译完成后更新代码到github仓库。为了简化这个过程,你可以选择使用GithubAction来帮助我们自动化部署。GithubAction可以在一个行为被触发后实现一些其他的动作。利用这个能力,我们可以实现,当我们写完一篇文章,把代码推送到Github仓库,让Github帮我们完成编译和部署这个过程,就是达到持续集成(CI)和持续交付(CD)的效果).关于GithubAction,可以查看官方文档获取详细教程。根据文档中的描述,我们只要在代码中添加一层.github/workflows目录,并在该目录下创建一个yml文件来描述具体的行为,即可启用GithubAction。下面是部署一个hexo博客的yml文件,你可以把它写到.github/workflows/blog-deploy.yml文件中:name:Deployhexoblogon:push:branches:-"master"jobs:build-and-部署:运行:ubuntu-最新步骤:-使用:actions/checkout@v3with:ref:"master"-name:Setupnode使用:actions/setup-node@v3with:node-version:"14"-名称:安装纱线和安装节点模块使用:borales/actions-yarn@v3.0.0with:cmd:安装-名称:检查纱线和节点版本运行:|echo"Nodeversionis`node-v`"echo"Yarnversionis`yarn-v`"-name:Build&Deploy运行:|gitconfig--globaluser.name"GitHubAction"gitconfig--globaluser.email"action@github.com"sed-i''"s~git@github.com:~https://${{秘密.GH_TOKEN}}@github.com/~"_config.ymlrm-rf.deploy_gityarncleanyarnbuildyarndeploy保存并提交代码后,你可以在博客的Github项目仓库的Actions选项卡中找到创建的工作流,当你推送代码时,这个工作流会被触发:但实际上最终还是会失败,因为我们在上面的脚本中还有一个步骤是要使用一个GithubAction的secretscontext,也就是这里的${{secrets.GH_TOKEN}}。${{xxx}}是GithubAction中特有的模板语法,可以获取一些Github相关的内置系统变量(这么说吧),但又不同于GithubAction的环境变量。我们这里获取到的secrets.GH_TOKEN就是GithubPersonalaccesstoken。获取这个token的目的是为了让当前的GithubAction工作流有权限向我们的项目推送代码。首先,我们需要得到这个Token。你可以在你的用户头像菜单中选择Setting,进入settings选择Developersettings,然后选择Personaaccesstoken就可以看到:点击右上角的Generatenewtoken按钮生成一个新的Token,填写备注即可可以轻松区分,查看repo和workflow权限,Expiration过期时间选择Noexpiration:这个Token很重要,一定不能泄露。如有泄露,立即重置token!!!点击Generatetoken按钮后,会生成一个ghp开头的token。这里需要复制token(以后无法查看,只能重新生成):复制token后,进入博客仓库的设置,选择Secrets-Actions,点击Newrepositorysecret按钮生成a密钥信息:我们把密钥名写成GH_TOKEN,把值填入刚才复制的Githubtoken中:这里新建的secret字段可以被获取到的GithubActionyml配置对象中的secretcontext使用。至此,GithubAction工作流程就可以正常使用了,可以愉快的开始写博客了。每次提交GithubAction,它都会自动为你部署,尽情享受吧~