2017-02-18 42 views
1

我有一个Phoenix应用程序,并且在JavaScript端使用Filestack客户端。 Filestack从我的服务器请求一个JSON文件。我把这个文件放在我的资产目录中,它被加载,但是Filestack Javascript客户端因为无法读取json对德语变音符号(öäü)而崩溃。我看了一下头部,就像Content-type: application/json一样。我认为我需要的是Content-type: application/json; charset=utf-8。我也使用webpack2 btw。 我该如何做到这一点?如何使用charset utf-8为Filestack提供静态JSON文件

回答

2

Plug.Static使用mime包来设置content-type标头。您可以覆盖json的值,如mime package's README中所述。确保您的应用使用mime版本1.1.0或更高版本,因为内置MIME类型不可覆盖,因为在1.1.0中修复了bug

一下添加到config/config.exs

config :mime, :types, %{"application/json; charset=utf-8" => ["json"]} 

然后,力重新编译mime

mix deps.clean --build mime 

然后启动凤凰:

mix phoenix.server 

在此之后,服务的.jsoncontent-type文件通过Plug.Static应该是application/json; charset=utf-8

$ curl -I localhost:4000/js/foo.json 
HTTP/1.1 200 OK 
server: Cowboy 
date: Sat, 18 Feb 2017 14:36:51 GMT 
content-length: 3 
cache-control: public 
etag: 8EA91E 
content-type: application/json; charset=utf-8 
+0

你先生,是救命恩人!非常感谢你! –

相关问题