我出于某些网络原因在中国从Google网络字体中下载了.woff
文件。以前我在Github Pages上尝试了@font-face
并且它有效。但是这次我花了一个小时才找到破碎的地方。
我使用Node来提供mime
的静态文件,content-type
似乎是application/x-font-woff
,我的代码在CoffeeScript中:
exports.read = (url, res) ->
filepath = path.join __dirname, '../', url
if fs.existsSync filepath
file_content = fs.readFileSync filepath, 'utf8'
show (mime.lookup url)
res.writeHead 200, 'content-type': (mime.lookup url)
res.end file_content
else
res.writeHead 404
res.end()
由于Github Pages上content-type
的{{1}}为.woff
,我只是在我的代码中将该行传达给它以使其相同..但它仍然失败:
application/octet-stream
最后,我切换到Nginx服务器来提供exports.read = (url, res) ->
filepath = path.join __dirname, '../', url
if fs.existsSync filepath
file_content = fs.readFileSync filepath, 'utf8'
show (mime.lookup url)
# res.writeHead 200, 'content-type': (mime.lookup url)
res.end file_content
else
res.writeHead 404
res.end()
文件..最后它开始工作。
但我如何在Node上修复它?
答案 0 :(得分:3)
在此行中,fs.readFileSync(filepath, 'utf8')
编码设置为'utf8'
。它必须是'binary'
。
此外,res.end(file_content)
函数需要传递正确的编码。试试res.end(file_content, 'binary')
。
我有同样的问题,不得不自己解决,这个答案似乎不存在于任何地方。