404 при обслуживании статических файлов с помощью docker+nginx+django/angularjs

Похоже, что конфигурация docker-compose была неправильной. Причина, по которой nginx выбросил эти 404, заключалась в том, что у него не было доступа к /usr/src/app/defsec-exam-app/static.

Вот правильная конфигурация docker-compose -:

# Nginxnginx:    build: ./nginx    volumes_from:        - django    links:        - django    ports:        - "80:80"# This defines a service for the Django app# Will include the Angular frontenddjango:    build: .    volumes:        - .:/root        - /usr/src/app    expose:        - "8000"    links:        - postgres# This defines a service for the Postgres databasepostgres:    image: postgres:latest

volumes_from получает тома из службы django. И я разоблачил usr/src/app как объем. Похоже, это делает свое дело. Я открыт для предложений, если таковые имеются!

Кроме того, вот новая конфигурация nginx -:

worker_processes 1;events {    worker_connections 1024;}http {    server {        listen 80;        server_name example.org;        access_log /dev/stdout;        error_log /dev/stdout info;        location /static/ {            alias /usr/src/app/defsec-exam-app/static;        }        location /static/javascripts/ {          default_type text/javascript;          alias /usr/src/app/defsec-exam-app/static/javascripts/;        }        location /static/stylesheets/ {          default_type text/css;          alias /usr/src/app/defsec-exam-app/static/stylesheets/;        }    location /static/bower_components/ {      types {        text/css css;        text/javascript js;      }      alias /usr/src/app/defsec-exam-app/static/bower_components/;    }    location /static/partials/ {      types {        text/html html;      }      alias /usr/src/app/defsec-exam-app/static/partials/;    }    location /static/admin/ {          alias /usr/src/app/defsec-exam-app/static/admin/;    }    location /static/admin/css {      default_type text/css;      alias /usr/src/app/defsec-exam-app/static/admin/css;    }    location /static/admin/js {      default_type text/javascript;      alias /usr/src/app/defsec-exam-app/static/admin/js;    }    location /static/admin/img {      types {        image/png png;        image/jpeg jpg;      }      alias /usr/src/app/defsec-exam-app/static/admin/img;    }        location / {            proxy_pass http://django:8000;            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;        }    }}

Примечание: Мне пришлось добавить django admin css / js / img в репозиторий docker / deployment отдельно, чтобы django admin работал правильно. (Простая команда ДОБАВЛЕНИЯ в django Dockerfile делает свое дело)