2017-02-18 2 views
1

私はPhoenixアプリケーションを持っています.JavaScript側ではFilestackクライアントを使用します。 Filestackは自分のサーバーからJSONファイルを要求します。私はアセットディレクトリにファイルを置いて、ロードされますが、Filestack Javascriptクライアントはjson doをドイツ語のウムラウト(öäü)に読み込むことができないため、エラーでクラッシュします。私はヘッダーを見て、これはContent-type: application/jsonのように提供されます。私が必要とするのはContent-type: application/json; charset=utf-8だと思います。私もwebpack2 btwを使用します。 これはどのようにして達成できますか?FilestackのためにPhoenixから静的なJSONファイルをcharset utf-8で提供する方法

答えて

2

Plug.Staticは、mimeパッケージを使用して、content-typeヘッダーを設定します。 jsonの値は、mime package's READMEの説明に従って上書きできます。 1.1.3.0で修正されたbugのため、組み込みのMIMEタイプがオーバーライドされなかったため、アプリでmimeバージョン1.1.0以降が使用されていることを確認してください。

config/config.exsにこれを追加します。次に

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

、力がmimeを再コンパイル:その後、

mix deps.clean --build mime 

とフェニックス開始します。この後

mix phoenix.server 

、務めcontent-type.jsonのファイルを作成者:Plug.Staticapplication/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

あなたは命を救う人です!どうもありがとうございました! –

関連する問題