如何使用 nginx 提供特定的静态文件?
How to serve specific static files with nginx?
我有类似 /api/lang?lang=en
的查询,我想将其作为 /server/i18n-angular/en.json
与 nginx 一起使用。我该怎么做?
我的目录结构如下:
/public/
/server/i18n-angular/en.json
我有以下配置,但是nginx说此时使用索引指令是错误的。
server {
root /public
...
location /api/lang {
if ($args ~* "\?lang=(.+)") {
set $language ;
index ../server/i18n-angular/$language.json;
}
}
}
我应该使用什么指令而不是 index
?
"index"指定用于显示文件夹的索引文件,所以这不是您需要的。
您需要 "rewrite":
location /api/lang {
alias /server/i18n-angular;
if ($args ~* "\?lang=(.+)") {
set $language ;
rewrite ^/(.*)$ /$language.json;
}
}
location /api/lang {
alias /server/i18n-angular;
rewrite ^ /$arg_lang.json;
}
我有类似 /api/lang?lang=en
的查询,我想将其作为 /server/i18n-angular/en.json
与 nginx 一起使用。我该怎么做?
我的目录结构如下:
/public/
/server/i18n-angular/en.json
我有以下配置,但是nginx说此时使用索引指令是错误的。
server {
root /public
...
location /api/lang {
if ($args ~* "\?lang=(.+)") {
set $language ;
index ../server/i18n-angular/$language.json;
}
}
}
我应该使用什么指令而不是 index
?
"index"指定用于显示文件夹的索引文件,所以这不是您需要的。
您需要 "rewrite":
location /api/lang {
alias /server/i18n-angular;
if ($args ~* "\?lang=(.+)") {
set $language ;
rewrite ^/(.*)$ /$language.json;
}
}
location /api/lang {
alias /server/i18n-angular;
rewrite ^ /$arg_lang.json;
}