Я использую Node в качестве сервера и пытаюсь обработать файл шрифтов следующих расширений: woff2, woff, ttf. Я использую restify
var ServeFile = (folder: string, page: string, res: Restify.Response) => {
let path:string = __dirname+"/"+folder+page;
let MimeType: string | null = Mime.getType(path);
if(!MimeType) MimeType = "";
let body:string = fs.readFileSync(path, "utf8");
// if(MimeType == "font/woff2"){
// MimeType = "application/font-woff2";
// }
if(MimeType.startsWith('image') || MimeType.startsWith('font') || MimeType.startsWith('application')){
res.writeHead(200, {
'Content-Length': Buffer.byteLength(body, "binary"),
'Content-Type': MimeType
});
res.write(body,'binary');
}else{
res.writeHead(200, {
'Content-Length': Buffer.byteLength(body, "utf8"),
'Content-Type': MimeType
});
res.write(body);
}
res.end();
}
Когда я пытаюсь это сделать, chrome говорит, что не удалось декодировать загруженный шрифт.
Он также дал следующее предупреждение для каждого типа:
OTS parsing error: Failed to convert WOFF 2.0 font to SFNT
OTS parsing error: incorrect file size in WOFF header
OTS parsing error: FFTM: misaligned table
Что я делаю не так?