Django /admin перенаправляет в /usr/src/app/admin

У нас есть приложение Django 1.9.6, работающее в контейнере Docker. В контейнере Docker настроен nginx для обслуживания статических файлов.

Мы ссылаемся на / admin, и это приведет нас к страницам / admin, но когда мы нажмем на ссылку, мы перейдем к / usr / src / app/ admin / api / module /

Я могу сказать вам, что Django работает из каталога / usr / src / app.

Мы попытались добавить FORCE_SCRIPT_NAME='' в настройках и это не помогло.

Приложение Django работает через Daphne (так как мы используем каналы)

Вот наш конфиг nginx:

server {
    listen      80 default_server;

    charset     utf-8;

    # max upload size
    client_max_body_size 4G;   

    # Django media
    location /media  {
        alias /usr/src/app/media;  
    }

    location /static {
        alias /usr/src/app/static-collect; - amend as required
    }

    location / {
        proxy_pass http://0.0.0.0:8000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_redirect     off;
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;
    }
}`

1 ответ

Проблема была не в nginx и не в его конфигурации, а в том, как мы начали daphne.

Мы имеем daphne --root-path=/usr/src/app -b 0.0.0.0 -p 8000 config.asgi:channel_layer -v2

В нашем скрипте для начала дафна. Один мы удалили --root-path=/usr/src/app все работает как положено.

т.е.daphne -b 0.0.0.0 -p 8000 config.asgi:channel_layer -v2

Другие вопросы по тегам