2021-04-19-gitee-关于gitee静态网页404的问题

世间千般好

这个coding又TM搞幺娥子,之前要推荐升级使用新版本静态网站(部署在腾讯OSS),觉得没必要,现在要强制升级新版,淦。逛了一下,国外github访问太慢了;gitee免费版又不能自定义域名,而且怕到时候是不是又会学coding给关掉;腾讯云这套真不想弄,马哥,一个静态网站,我也贡献不了多少钱;我目前云这块都是在阿里这边玩的,域名、云服务器、OSS都是买阿里的,就捣鼓了一下在阿里云的OSS中部署静态网站;

过程中知道了为什么之前在gitee中部署静态博客,首页、标签页等几个页面可以访问(自带index.html),但是具体的某篇笔记却访问不了。而在coding和github中却没有这个问题 —- 原来gitee和阿里云OSS的静态网站一样,必须在具体要访问到的链接下有个index.html文件。

用jekyll生成静态博客及访问流程大致如下:

笔记中设置路径:

permalink: /:year/21630edb08fe47f4b62969b52cf3d6f9

jekyll生成的路径:

/2019/21630edb08fe47f4b62969b52cf3d6f9.html

在coding和github中的静态网站,可以通过下面两种方式访问(可加.html,也可不加):

http://linxingyang.net/2019/21630edb08fe47f4b62969b52cf3d6f9
http://linxingyang.net/2019/21630edb08fe47f4b62969b52cf3d6f9.html

但是在gitee和阿里云中,则需要访问路径下有一个index.html,例如访问上面的路径

http://linxingyang.net/2019/21630edb08fe47f4b62969b52cf3d6f9

gitee和阿里云OSS中的静态网站就会认为是:

http://linxingyang.net/2019/21630edb08fe47f4b62969b52cf3d6f9/index.html

但其实这个index.html根本就不存,所以就导致了404。

这个问题其实也很好解决,就是在现有的链接的最后加个index,

permalink: /:year/21630edb08fe47f4b62969b52cf3d6f9/index

这样生成的就是

http://linxingyang.net/2019/21630edb08fe47f4b62969b52cf3d6f9/index.html

但为了保持之前的链接可用,即如下这个链接仍然能够访问到之前的笔记

http://linxingyang.net/2019/21630edb08fe47f4b62969b52cf3d6f9

对界面的链接进行处理:(注意这里两个{应该是在一起的,不过在一起就会被解析掉了,所以我手动加个空格)

<a href="{ { post.url | prepend: site.baseurl } }">

改为

<a href="{ { post.url | prepend: site.baseurl | remove: "/index" } }">

这样生成的链接就不包含index了,同时在阿里OSS和gitee中都可以访问了。

现在静态网站放在阿里OSS上,看看能不能一次解决问题,还是后续继续折腾。MD,国内这些资本,国外github静态博客坚挺这么久,国内这才多久就要开始就又是要升级到收费版本,又是不能自定义域名。淦。