【问题标题】:How to force URL with django rest framework?如何使用 django rest 框架强制 URL?
【发布时间】:2021-12-11 14:37:25
【问题描述】:

我使用一个 apache 容器作为负载均衡器并将流重定向到 2 个 apache wsgi。 我在 2 个 apache 上使用 django-rest-framework。

我在获取文件时遇到问题。确实,api 返回了我:

{
    avatar: http://127.0.0.1:8000/media/avatars/2.jpg
}

我希望 api 返回 https://api.myservice/ 而不是 http://127.0.0.1:8000/

如何强制url?

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    看起来类似于this question。那里的答案提到:

    Django 的反向使用请求的域来构建绝对 URL。

    因此,请确保在您的代理中传递 Host 标头。从链接答案上的 cmets 来看,ProxyPreserveHost 应该为 Apache 做这项工作。

    【讨论】:

    • 感谢您的回答。它适用于 ProxyPreserveHost
    • 我还是有问题。它适用于除图像之外的所有内容。 Django REST框架以http而不是https返回图像。另一方面,apache 在 https 中返回 http 中的所有内容。当我打开一个页面时,我将图像从 http 重定向到 https(感谢 apache),但 firefox 告诉我连接不安全。
    猜你喜欢
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 2021-11-05
    • 1970-01-01
    • 2019-07-28
    • 2021-01-17
    相关资源
    最近更新 更多