又拿下一个域名
2024年11月01日 10:41
img.wang
google fonts 的两个域名 googleapi.com 和 gstatic.com 在国内访问不稳定,google fonts 加载有时成功有时不成功,可以考虑用 cf worker 代理。
在 fonts.google.com 选好字体后,得到相应css地址,如
https://fonts.googleapis.com/css2?family=Roboto&display=swap
把地址中的fonts.googleapis.com换成自己的域名,cf worker 完成后面的工作。
worker 代码:
export default {
async fetch(request, env, ctx) {
const hostname = request.headers.get("Host");
const url = new URL(request.url);
const { pathname } = new URL(url);
let newurl;
if(pathname.startsWith('/css')){
newurl = new URL(request.url.replace('fonts.your.site','fonts.googleapis.com'));
const resp = await fetch(newurl);
let resp_text = await resp.text();
resp_text = resp_text.replaceAll('fonts.gstatic.com', 'fonts.your.site');
return new Response(resp_text, { headers: { "content-type": "text/css;charset=UTF-8", },});
} else {
newurl = new URL(request.url.replace('fonts.your.site','fonts.gstatic.com'));
return await fetch(newurl);
}
}
}
代码中的 fonts.your.site 换成你自己的域名,然后给 worker 配置好相应路由即可。