2017-02-18 85 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

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