为什么Node.js的未能满足.woff文件(Why Node.js failed to serve

2019-07-03 19:28发布

我下载了.woff从谷歌网页字体文件,在中国一些网络的原因。 以前我试过@font-face ,关于Github的页面和它的作品。 但是这一次,我花了一个小时才找到这里被打破。

我使用节点服务与静态文件mimecontent-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()

作为content-type.woff在Github Pages是application/octet-stream ,我刚出来的CommNet该行在我的代码,使之同。但它还是失败:

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()

最后,我切换到Nginx的服务器来服务.woff文件..最后它开始工作。

但是,我怎么能解决这个问题的节点?

Answer 1:

在这条线, fs.readFileSync(filepath, 'utf8')的编码被设置为'utf8' 。 它需要'binary'

此外, res.end(file_content)函数需要通过正确的编码。 尝试res.end(file_content, 'binary')

我有同样的问题,必须找出自己,这个答案似乎不在线的任何地方存在。



文章来源: Why Node.js failed to serve .woff files