在Roselia-Blog2.0更新后的一个多月后,Mohuety仍然没有更新,因为2.0是一个单页应用(Single Page Application),在应对GitHub Pages这种类似静态的服务时,就显得比较无力,我当然可以把所有页面都复制成相同的文件,但是这样并不优雅,我就放弃了这样的想法。
就像PHP的伪静态一样,思路是利用自定义的404页面来进行路由,这是一个好方法,我当然可以把主页的代码复制成404页面,强行利用404页面和自带的导航来完成,但是这样会导致所有的页面(当然除了主页)返回的相应都是404,在查看network的时候也会是一个红色的响应,十分难看,于是分流就显得十分有必要。
Mohuety这个站的架构大致上是全静态页面,托管在GitHub Pages上,现在/blog文件夹里面是一个单页应用,那么思路就很简单了,对于/blog后的请求都分流到/blog/上。 那么,要怎么样才能还原定位前的状态呢? 答案很简单,只要改写主页和404页面,形成配合。
index.html
:
let redirect = sessionStorage.redirect;
delete sessionStorage.redirect;
if (redirect && redirect != location.href) {
history.replaceState(null, null, redirect);
}
跳转信息被存在了sessionStorage里面,因此只用在404页面中把信息写入到sessionStorage里面,并且跳转就可以了
404.html
:
if(location.pathname.startsWith('/blog')) {
sessionStorage.redirect = location.href;
window.location.replace('/blog/')
} else {
//Do what 404 should do
}
解决了这个问题之后,网站就上线了。
Roselia-Blog的配色源自Roselia以及Love Live的应援色:
什么?你问我燐子在哪里?无可奉告!不知道灰色(#bbbbbb)用在哪里才比较合适,所以藏在意想不到的角落
而Mohuety的配色则源自少女☆歌劇
作为武士道的企划之一,果不其然官网是用WordPress搭的WordPress狂魔不许摸果然没让我失望
本站调色盘演示(由roselia-script
生成):