从nginx子位置访问swagger ui docker实例

从nginx子位置访问swagger ui docker实例,nginx,swagger-ui,Nginx,Swagger Ui,我很难让Docker容器为我的nginx代理后面的swagger ui提供静态资产。我的nginx配置是: server { server_name api.example.com; listen 443 ssl http2; listen [::]:443 ssl http2; location ^~ /docs { proxy_pass http://127.0.0.1:9505/; } location / { proxy_

我很难让Docker容器为我的nginx代理后面的swagger ui提供静态资产。我的nginx配置是:

server {
    server_name api.example.com;
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    location ^~ /docs {
        proxy_pass http://127.0.0.1:9505/;
    }
    location / { proxy_pass http://127.0.0.1:9005; }
}
其中,我们的主API在根位置响应,如果url中指定了/docs,则代理swagger docker容器,通过以下方式启动:

docker run -d -p 9505:8080 --name swagger -e API_URL=https://api.example.com/swagger.json swaggerapi/swagger-ui
当点击
https://api.example.com/docs
但是所有的静态资产都是404,因为它们试图调用
https://api.example.com/swagger-ui.css
,例如

我不希望在我的根位置块中放置
try\u files
,因为这样我会得到大量额外的处理,迫使所有正常的API请求在出错并进入正确的API代理之前首先通过swagger代理


让swagger在这样的子位置运行是否有一些简单的配置更改我没有做?

看起来像是将我的位置更改为:
location^~/docs/
,后面的斜杠已经解决了这个问题?我不完全确定为什么我必须进一步深入到nginx文档中