nginx - drf_yasg swagger 中的 base_url 问题
问题描述
我在8000端口使用 Nginx 运行 Django。这里 Nginx 暴露在 8000 端口之外。但在 Swagger UI 中,base_url设置为没有端口。所以 Swagger 试图在没有端口的情况下访问端点,然后它给出一个响应TypeError: Failed to fetch。
当我使用 Postman 访问端点(带端口)时,它工作正常。仅当我尝试使用 Swagger 时才会出现此问题(因为发送的请求没有端口)。
在这里,我希望 Swagger 使用端口发送所有请求。请帮我解决这个问题。谢谢。
笔记:
- 我正在使用drf-yasg==1.17.1包来生成Swagger UI
- 其他要求是Django==3.0.3和djangorestframework==3.11.0
解决方案
您还需要告诉 Nginx 转发服务器端口。当 swager 从请求标头中获取基本 url 端口时(如果没有按照 mtshaikh 的建议进行硬编码)。
例如。像这样的东西应该在 Nginx 配置中
location / {
proxy_set_header Host $host:$server_port;
proxy_pass http://example.com:8000/;
}
推荐阅读
- angularjs - 如何控制/预防
- visual-studio-code - 如何在 ibm 区块链平台 VScode 上创建自定义结构环境
- python - 用于 py35 和 py36 而不是通用 py3 的 Python 轮子生成
- c - 为什么它可以在windows下运行,而在linux下不行?
- ruby - 运行 ruby-2.3.1@rubinius/rake install --trace' 时出错
- python - 在张量流中,如何在 y 上使用 tf.where() 从 x 中选择 x 和 y 具有不同形状的行?
- python - 如何在 Django 中以某种速度增加模型类字段?
- react-native - 更改标签颜色 TextInput 反应原生纸 onFocus
- twilio - 找不到模块“@sendgrid/mail”
- ios - 在 Xcode 项目上实现第三方库时出错