我正在使用 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')
答案 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使用代理传递的原型。