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

Bar*_*lcs 6 nginx static-files

我有类似的查询/api/lang?lang=en,我想与 nginx as 一起提供服务/server/i18n-angular/en.json。我怎样才能做到这一点?

我有以下目录结构:

/public/
/server/i18n-angular/en.json
Run Code Online (Sandbox Code Playgroud)

我有以下配置,但 nginx 说此时使用 index 指令是错误的。

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

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

Mic*_*ton 6

我不认为你需要一个单独location的。一个简单的rewrite应该做。

例如:

server {
    rewrite /api/lang /server/i18n-angular/$arg_lang.json last;
Run Code Online (Sandbox Code Playgroud)