Javascript blob无法识别字体文件类型
我正在尝试从本地文件加载字体文件并将其转换为uri 不幸的是,我在正确读取文件时遇到了一些问题 以下是我正在构建的函数:Javascript blob无法识别字体文件类型,javascript,fonts,blob,font-face,Javascript,Fonts,Blob,Font Face,我正在尝试从本地文件加载字体文件并将其转换为uri 不幸的是,我在正确读取文件时遇到了一些问题 以下是我正在构建的函数: function fontToDataURI (file_path) { return fetch(file_path) .then(resp => resp.blob()) .then(blob => { console.log(blob.type) return new Promi
function fontToDataURI (file_path) {
return fetch(file_path)
.then(resp => resp.blob())
.then(blob => {
console.log(blob.type)
return new Promise(resolve => {
let f = new FileReader();
f.onload = e => resolve(f.result);
f.readAsDataURL(blob);
})
})
.then(dataURL => {
let fontRule = `@font-face {
font-family: "testfont face";
src: url(${dataURL});
}`
return fontRule;
})
不幸的是,resp.blob()无法正确读取文件的mimetype
当我将字体文件传递到函数georgia.tff中时,我认为应该看到一个blob类型的font/ttf
。相反,我看到的是默认的application/octet流
我使用了一个类似的函数从web中提取一个.woff2文件,它正确地识别了该文件
我有办法解决这个问题吗?谢谢大家! 感谢您的评论,@Carlos1232,可能是重复的。我想我已经解决了这个问题。在我的问题中,我已经有了将编码字体添加到@font-face的代码。我正在努力使blob具有正确的mime类型。手动更改是否合适?例如,编辑字符串以用
font/ttf
替换application/octet-stream
?现在我记得,如果您获得application/octet-stream,是因为您获得了一个位数组。所以你可能必须先转换它然后使用blob,