Hexo 部署到阿里云oss 修改配置

背景

前段日子将blog部署到了oss上,莫名的发现里面好多链接不好使,仔细看了看,才发现搞半天hexo本地起服务是可以走动态链接的,而阿里云则不可以使用,必须适用带html后缀的文件
这篇文章只是适用于使用阿里云oss的hexo用户 ,且用户需要安装过hexo deploy aliyun oss的工具

先送一张壁纸


错误位置

有几个地方不对,不同的theme表现为不同的位置,我的有下面的这些
categories:

tags:

页面内tags:

后来仔细研究了阿里云的文档找到了这个:

也就是说,他只能以html文件结尾才能找到对应的页面


解决

所以最后我也在网上找了找方法,幸好看的懂js代码,最后在hexo的源码中找到了对应的代码:

在博客根目录下找到node_modules文件夹
node_modules–>hexo–>lib–>plugins

修改categories


在刚才打开的文件夹下找到list_categories.js文件,全局搜索href,会找到两处代码

1
result += `<a class="${className}-list-link${isCurrent ? ' current' : ''}" href="${self.url_for(cat.path)}${suffix}index.html">`;

在两个地方分别加入字符串index.html

修改tags

在文件夹下找到list_tags.js,同样全局搜索href

分别在这两个地方加上index.html

修改页码


浏览器按f12会看到页码超链接路由也是不带静态文件的,所以页码也得改
找到paginator.js文件

同样全局搜索href
改成如下代码

然后去后台执行一下命令

1
2
3
hexo clean  
hexo g
hexo s

就会看到超链接已经带上静态文件的后缀了

执行

将博客推到oss上就可以看到效果了

1
hexo d


结尾

这只是基于hexo源码层的修改,很浅显,但是所有的主题都适用,只要是往阿里云oss上推,就都可以
至于每个主题,还需要各位自行琢磨怎么去修改,例如归档按钮,就不存在静态页面,也是动态路由

需要在theme的_config.yml文件中修改

不过最难的东西都搞定了,剩下就是各位自行钻研了
就这样~拜拜

请我喝杯咖啡吧~

支付宝
微信