将hexo静态博客部署到阿里云OSS上

现在同学们写博客有很多渠道和工具可以选择,不想折腾的可以用阿里云博客,CSDN,简书等,开箱即用,体验良好。稍微极客一点的可以选择wordpress,ghost自建博客,就是要自己买服务器,这一套流程玩下来,对建站基础也能做到心中有数了。还有些同学喜欢静态博客,例如jekyll, octopress, hexo等,还有基于react的gatsby也挺酷炫的(正在学习中),这类工具生成的静态博客可以托管在一些第三方的平台上,例如github pages,国内的coding.net,阿里云OSS等。作为阿里系公司的小员工,我选择把静态博客托管在阿里云OSS上,哈哈哈~静态博客工具,这里使用的是hexo,因为使用简单,功能强大。

使用hexo构建静态博客

首先,我假设你已经知道如何用hexo构建静态博客了,具体操作请参考hexo的官方教程即可,真的很简单,我们后面要做的就是把public目录下的文件都按照原有目录结构上传到阿里云OSS上就行。

创建并配置OSS

创建OSS

然后,我们开始折腾OSS。根据官方的指引,创建一个bucket,名字你们看心情。博客一开始应该不会有什么人看的,所以存储类型选择低频访问就好。读写权限要选择公共读,因为是要对外给别人看的。

设置静态页面

然后我们要在基础设置里面设置一下静态页面,默认首页填index.html,404可填可不填。保存即可。

配置域名

下图是我成功配置后的截图,具体如何绑定域名及开启https请参考阿里云官方文档管理域名

上传静态站点

hexo g 命令可以将整个静态网站生成在 public 下面,我们可以通过oss的sdk或者图形化的oss-browser客户端来上传文件,直接通过网页上传有文件数量的限制。

开通RAM服务

要想通过sdk或者客户端访问OSS,需要通过访问控制RAM获取用户的accesskey和secret。如果之前没有开通RAM服务,需要先开通RAM服务。

创建用户

保存AccessKey和AccessKeySecret

配置oss-browser并上传

下载好oss-browser后,我们需要配置登录信息,填入刚才获取到的AccessKey和Secret,Endpoint选择默认的公共云。登录后,就可以看到我们刚刚创建的bucket,点击进入后就可以开始上传下载等操作。

oss-browser客户端支持拖动上传,只要将选中的文件(包括文件夹)拖到客户端界面内,就会自动上传,而且能够保持结构不变。这里,我们先进入到Public目录下,然后全部选中,整个拖到oss-browser界面内。

检查能否通过域名访问

此时,如果配置好了自定义域名,就可以通过自定义的域名进行方案,如果没有,使用OSS的公网访问域名也是可以的。同学们可以随便操作下,然后应该会发现有些地方不对:

  • 当你点击文字标题想进入文章的时候;
  • 当你点击阅读全文的时候;
  • 当你点击文章底部标签的时候;
  • 当你在侧边选择分类的时候;
  • 当你在文章底部选择下一篇的时候;
    你会发现网站最后都进入了主页,即默认的index.html。

修改hexo代码适配oss访问规则

举个栗子,hexo站点的默认访问路径类似这样:
http://localhost:4000/archives/
也就是访问的路径都是不带有index.html的, 但是OSS的访问路径必须为绝对路径, 必须包含index.html, 否则会导致一直访问的都是 OSS中配置的默认首页。hexo提供的默认主题,包括该站点使用的indigo主题都没有该配置项。特别是标签部分,需要修改hexo模块内的listTagsHelper函数,其实思路很简单,就是找到正确的地方,添加一个index.html即可。

修改文章标题处的代码

通过检查标题元素,我们找到了post-title-link这个类型。

在编辑器中搜索,我用的是vscode,推荐给大家,确实挺好用的。找了title.ejs文件中,在如下的位置,手动添加index.html就好了。

保存,我们可以通过hexo s本地启动服务检查一下。在本地查看时,是不会出现在oss上的情况的,但是我们可以查看点击标题时的地址栏,最后是不是多了一个index.html呢。可以再次hexo g,然后上传新的静态站点。要先删除原来的目录。

修改阅读全文处的代码

我们使用上面的方法,检查元素,找到对应的文件,添加index.html一样搞定。

修改侧边栏的归档、标签、分类

我们需要在当前主题的_config.yml文件内修改,如下图。

修改标签页中的标签栏

打开themes/indigo/layout/_partial/tags-bar.ejs,找到每个标签的连接处,添加index.html

修改prev和next处的代码

方法一样,找到关键词,搜索,搞定。

最后,修改标签的链接

按照上面的方法,最后找出来的地方是调用了hexo内部的函数list_tags。这个就不是修改主题文件了,而是要修改hexo这个模块里的代码,在这里:node_modules/hexo/lib/plugins/helper/list_tags.js。

这样,在点击文章底部的标签时,就会进入标签对应的文章列表了。
综上,基本就完成了hexo博客和OSS的适配。让我们既能享受到静态博客的便捷高效,也能体验OSS的低成本高可用(国内必须比github pages快)。

后续:

  • 都用了阿里云OSS了,再加个CDN也是理所当然的嘛,静态资源多的时候建议开启。
  • 个人和初创公司建站可以省去ECS或者虚拟主机的产品和运维成本。
  • OSS支持免费的https,在域名管理->证书托管->申请签发证书。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在使用Hexo搭建博客并将其部署到Gitee的过程中,你需要进行一些修改以确保正确的部署。 首先,你需要在_config.yml文件中找到deploy配置部分。在这里,你需要对deploy进行如下修改: ``` deploy: - type: git repo: https://gitee.com/你的用户名/你的仓库名.git branch: master ``` 将上述代码中的"你的用户名"替换为你在Gitee上的用户名,并将"你的仓库名"替换为你的博客仓库在Gitee上的名称。 接下来,你需要将你的博客同时部署到GitHub,以便在无法访问Gitee时,仍可通过GitHub访问你的博客。在_config.yml文件的deploy配置中,添加以下代码: ``` - type: git repo: https://github.com/你的用户名/你的仓库名.git branch: master ``` 同样,将上述代码中的"你的用户名"替换为你在GitHub上的用户名,并将"你的仓库名"替换为你的博客仓库在GitHub上的名称。 完成以上修改后,保存并关闭_config.yml文件。接下来,你可以通过运行命令`hexo deploy`将你的博客部署到Gitee和GitHub。 请注意,部署到Gitee相对于GitHub可能会稍微麻烦一些,因为你需要手动去Gitee的网站上更新一次才能看到更新效果。这是因为Gitee是国内版的GitHub,速度相对较快,但在部署时需要手动同步。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [搭建hexo博客——Gitee篇](https://blog.csdn.net/qq_939317133/article/details/124046319)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [hexo博客同时部署gitee和github,搭建镜像站](https://blog.csdn.net/liegu0317/article/details/123058346)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值