【问题标题】:How do I make my nginx load all static files from django docker app over HTTPS?如何让我的 nginx 通过 HTTPS 从 django docker app 加载所有静态文件?
【发布时间】:2018-06-20 06:00:37
【问题描述】:

我的 nginx 安装在服务器上,我的 Django 应用程序在 docker 容器中运行。虽然我的应用程序可以通过 HTTP 正常加载,但它不会通过 HTTPS 加载任何静态文件 (CSS)。我应该在 nginx conf 或 docker app 中进行哪些更改来解决这个问题?

【问题讨论】:

  • 您是否收到权限错误?或者日志/控制台中的任何异常?
  • 控制台没有错误,只是通过HTTPS浏览时拒绝加载css和javascripts。

标签: python django ssl docker nginx


【解决方案1】:

由于我的应用程序在 python(Django 应用程序)中,我使用“python manage.py collectstatic -c”收集了所有静态文件,然后将该目录(包含这些静态文件 - /apps/test_app/static )安装在同时运行 docker 和 nginx 的主机服务器。

我用来挂载的命令是

docker run --net=host -v /static:/apps/test_app/static -d -p 8000:8000 image_id

这里的 static 是主机服务器上的目录,而 /apps/test_app/static 是容器内的目录。

完成后,我在 nginx.conf 或 ssl.conf 文件中添加以下行

location /static/ {
       # root /var/www/app/static/;
         alias /static/;
         autoindex off;
}

接着 nginx 重启,然后问题就解决了。

【讨论】:

    猜你喜欢
    • 2016-08-15
    • 2020-06-17
    • 2023-04-01
    • 1970-01-01
    • 2018-05-08
    • 2011-10-20
    • 2021-11-20
    • 2017-03-15
    • 2019-05-31
    相关资源
    最近更新 更多