免服务器 让github pages支持vue-router history模式
history模式需要nginx服务层支持,github pages又不支持spa feature
尽管这样,还是有 serverless 方案可用
最简单的解决方式:复制index.html 为404.html
最无奈的解决方式:改用hash
最复杂的解决方式:自定义域名 cdn + rule 重定向
404.html方式存在的问题 会响应404错误码 虽不影响使用,但会导致seo无法收录
经研究还是有 serverless 改进方案:
自有域名cname + cloudflare worker 将404页面错误码改为200返回
也就是和第三种方式结合使用
worker mathes 填写自有域名如: www.xxx.com/*
代码如下:
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
/**
* Fetch and log a request
* @param {Request} request
*/
async function handleRequest(request) {
let resp = await fetch(request);
if(resp.status === 404){
return new Response(resp.body, {status: 200, statusText: "OK", headers: resp.headers});
}
return resp;
}
ps. 免费版流量次数有限 且用且珍惜