Django MEDIA_URL返回https而不是http

时间:2019-11-27 13:41:17

标签: django django-media

我正在使用 Django 2.2.x DRF

我有一个带有 FileField

的模型
file = models.FileField(upload_to=get_media_upload_path)

文件正在上传,但是在访问obj.file时,它给出的URL没有HTTPS

http://example.com/media/image.jpg

我希望成为

https://example.com/media/image.png

重定向已在nginx配置中设置。但是我想要带有https的响应URL。

设置

MEDIA_URL = '/media_/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static_cdn', 'media_root')

1 个答案:

答案 0 :(得分:1)

首先,确保Nginx发送了X-Forwarded-Proto头,应将其设置为:

proxy_set_header X-Forwarded-Proto https;

然后在Django设置中添加以下内容:

USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

通过这种方式,您将指示Django使用代理传递的原型。

相关问题