我无法让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在根位置响应,并且如果在网址中指定了/ 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
时获得了swagger-ui index.html的内容,但是因为他们试图调用https://api.example.com/swagger-ui.css
而导致所有静态资产404,例如。
我不希望在我的根位置块中放置try_files
,因为我最终会进行大量的额外处理,通过swagger代理在发生错误并进入正确的API之前首先强制执行所有正常的API请求代理。
是否有一些简单的配置更改我错过了如何在这样的子位置运行?