如何用nginx提供特定的静态文件?

我有像/api/lang?lang=en这样的查询,我想用nginx作为/server/i18n-angular/en.json 。 我怎样才能做到这一点?

我有以下目录结构:

 /public/ /server/i18n-angular/en.json 

我有以下的configuration,但nginx说在这一点上使用索引指令是错误的。

 server { root /public ... location /api/lang { if ($args ~* "\?lang=(.+)") { set $language $1; index ../server/i18n-angular/$language.json; } } } 

我应该使用什么指令而不是index

我没有看到你需要一个单独的location 。 一个简单的rewrite应该做的。

例如:

 server { rewrite /api/lang /server/i18n-angular/$arg_lang.json last;