Django 静态文件未加载到 Docker 上?



我正在使用 Django 3.0.6,并希望对我的项目进行 dockerization。 除了静态文件外,一切都运行良好。当我正常运行项目时,静态文件会完全加载。但是,在码头化之后,它们不会加载并引发 404 错误。 我的项目布局如下:

├── nginx
│   ├── Dockerfile
│   └── nginx.conf
├── src
├── applications
  ├── configuration
  │   ├── asgi.py
  │   ├── __init__.py
  │   ├── __pycache__
  │   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
  ├── Dockerfile
  ├── manage.py
  ├── requirements.txt
  ├── static
  │   ├── build
   │   ├── images
  │   └── vendors
   └── templates

settings.py:

STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]

Dockerfile:

FROM python:3.6
ENV PYTHONUNBUFFERED 1
ENV SRC_DIR=/var/www/project/src
RUN mkdir -p $SRC_DIR
WORKDIR $SRC_DIR
ADD ./requirements.txt $SRC_DIR/requirements.txt
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
ADD . $SRC_DIR

docker-compose.yml:

version: '3'
services:
web:
build:
context: ./src
dockerfile: Dockerfile
command: bash -c "python manage.py makemigrations && python manage.py migrate && gunicorn --bind 0.0.0.0:8000 -w 4 configuration.wsgi"
env_file: ./src/.environment
volumes:
- ./src:/var/www/project/src
- ./src/static:/var/www/project/src/static
ports:
- 8000:8000
depends_on:
- db
nginx:
build:
context: ./nginx
dockerfile: Dockerfile
ports:
- 80:80
volumes:
- ./src:/var/www/project/src
- ./src/static:/var/www/project/src/static
depends_on:
- web

nginx.conf:

upstream view {
server web:8000;
}
server {
listen 80;
location / {
proxy_pass http://view;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location /static/ {
autoindex on;
alias /var/www/project/src/static;
}
}

我不知道问题是什么,请帮我解决这个问题。

我正常安装了nginx,并使用docker安装了其他的,它现在可以工作了。

相关内容

  • 没有找到相关文章

最新更新