加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

为什么Node.js无法提供.woff文件

发布时间:2020-12-13 21:01:47 所属栏目:Nginx 来源:网络整理
导读:我出于某些网络原因在中国从谷歌网络字体下载了.woff文件.以前我在Github Pages上尝试过@ font-face,但它确实有效.但是这次花了我一个小时的时间来找到被打破的地方. 我使用Node来使用mime提供静态文件,内容类型似乎是application / x-font-woff,我的代码在C

我出于某些网络原因在中国从谷歌网络字体下载了.woff文件.以前我在Github Pages上尝试过@ font-face,但它确实有效.但是这次花了我一个小时的时间来找到被打破的地方.

我使用Node来使用mime提供静态文件,内容类型似乎是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上的.woff的内容类型是application / octet-stream,我只是在我的代码中通知该行以使其相同..但它仍然失败:

exports.read = (url,'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文件..最后它开始工作了.

但是如何在Node上修复它呢?

在这一行中,fs.readFileSync(filepath,’utf8′)编码设置为’utf8′.它需要是’二进制’.

此外,res.end(file_content)函数需要传递正确的编码.尝试res.end(file_content,’binary’).

我有同样的问题,不得不自己解决,这个答案似乎并不存在于网上任何地方.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读