nginx で json ファイルを静的にサービスする
デフォルトでは JSON に mime タイプが設定されていないので、/etc/nginx/mime.types
に
application/json json;
を追加する。
Chrome や Safari では Content-Type
ヘッダに Charset がないと JSON 内に ASCII 文字以外が入った場合にパースエラーになってしまう(Firefox では問題ない)。
追加された mime タイプは charset_types
に当然ないので nginx conf に以下の設定を追加する。
charset UTF-8; charset_types application/json;
これでレスポンスヘッダに
Content-Type:application/json; Charset=UTF-8
が付く。
How to enable correct charset HTTP-header in NGINX - Server Fault