我有一个 nginx 服务器正在运行一个 React 单页应用程序,内容很简单:
server{
server_name testing001.example.com;
location / {
root /var/www/testing001;
try_files $uri /index.html;
}
}
在我的/var/www/testing001
目录中,除了应用程序文件之外,我还有一个目录:
\runtimes
\runtimes\1.js
\runtimes\2.js
\runtimes\3.js
...
\runtimes\default.js
我希望所有请求都https://testing.example.com/theRuntime.js?id={1,2,3,4}
能够:
- 根据 id 查询字符串,为我提供相应的文件
- 这是正常工作的,使用:
location ~* ^/theRuntime\.js {
if ($arg_id != "") {
set $id $arg_id;
rewrite ^ /runtimes/$id.js last;
}
}
- 如果 /runtimes/$id.js 文件不存在,我想提供 /runtimes/default.js,或者甚至只是直接从 nginx 提供一个通用字符串,我不在乎
- 这是我无法弄清楚的部分,我尝试了很多组合,它要么停止为我提供任何文件(404),要么在某些情况下默认为根目录
index.html
- 这是我无法弄清楚的部分,我尝试了很多组合,它要么停止为我提供任何文件(404),要么在某些情况下默认为根目录