小编gdg*_*gdg的帖子

如何在 Django 中的资源 URL 中输出 IP 地址后的端口?

  1. 如何将主机端口添加到序列化响应中的 URL?Django 目前提供没有端口的它们,因此链接已断开。
  2. 或者,如果添加端口不是正确的方法,我该如何更改我的配置,以便在访问资源时不需要在 URL 中指定端口?

输出(image_url 字段中缺少端口“:1337”)

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 1,
            "user": 1,
            "title": "Post 1",
            "slug": "post1",
            "image_url": "http://0.0.0.0/mediafiles/publisher/sample-image4.jpg",
            "content": "First",
            "draft": false,
            "publish": "2019-04-26",
            "updated": "2019-04-26T22:28:35.034742Z",
            "timestamp": "2019-04-26T22:28:35.034795Z"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

“image_url”字段将无法正确链接,除非它包含这样的端口:

"image_url": "http://0.0.0.0:1337/mediafiles/publisher/sample-image4.jpg",
Run Code Online (Sandbox Code Playgroud)

更多细节

堆:

  • Ubuntu
  • Docker(组合)
  • nginx
  • 独角兽 19.9.0
  • Django 2.1.7
  • Django REST 框架 3.9.2
  • 蟒蛇 3+
  • Postgres/psycopg2

我正在使用 Django REST 框架返回序列化对象的列表。这些对象包含一个名为“图像”的 FileField,我可以输出该图像的 URL。唯一的问题是,当我在浏览器的输出中单击该链接时,如果不手动在地址中添加服务器端口,我将无法访问该资源,例如

http://0.0.0.0:1337/mediafiles/publisher/sample-image4.jpg
Run Code Online (Sandbox Code Playgroud)

我不确定这是 nginx 问题、Django 设置问题还是我的代码是如何配置的。我无法通过 Google 找到任何其他报告的案例(可能是因为我还是 Django 的新手,尽管遵循了以下教程,但不确定配置是否正确)。

我尝试了其中一些解决方案,但它们不输出端口。 …

django url port nginx docker

5
推荐指数
1
解决办法
1585
查看次数

标签 统计

django ×1

docker ×1

nginx ×1

port ×1

url ×1