8

.woff中国のネットワーク上の理由で、GoogleWebフォントからファイルをダウンロードしました。以前、 Github Pages@font-faceで試してみましたが、機能します。しかし、今回はどこが壊れているかを見つけるのに1時間かかりました。

私はNodeを使用して静的ファイルを提供していますが、CoffeeScriptのコードはであるようmimecontent-type見えます。application/x-font-woff

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のは、同じにするためにコード内のその行を通信するだけです。しかし、それでも失敗しました。.woffapplication/octet-stream

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。そして、ついにそれが機能し始めました。

しかし、どうすればノードでそれを修正できますか?

4

1 に答える 1

3

この行でfs.readFileSync(filepath, 'utf8')は、エンコーディングはに設定されてい'utf8'ます。する必要があります'binary'

また、res.end(file_content)関数は正しいエンコーディングを渡す必要があります。試してみてくださいres.end(file_content, 'binary')

私は同じ問題を抱えていて、自分でそれを理解しなければなりませんでした。この答えはオンラインのどこにも存在しないようです。

于 2014-03-17T15:51:29.987 に答える