我有一个Phoenix应用程序,在javascript端我使用Filestack客户端。 Filestack从我的服务器请求JSON文件。我把文件放在我的资产目录中并且它被加载但是Filestack Javascript客户端崩溃了,因为它无法读取json do to german umlauts(öäü)。我看了一下标题,就像这个Content-type: application/json
一样。我认为我需要的是Content-type: application/json; charset=utf-8
。我也使用webpack2顺便说一句。
我该如何做到这一点?
答案 0 :(得分:2)
Plug.Static
使用mime
包设置content-type
标头。您可以按mime
package's README中所述覆盖json
的值。确保您的应用使用mime
版本1.1.0或更高版本,因为内置的mime类型由于在{1.1}中修复的bug而无法覆盖。
将此添加到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.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