我已经尝试解决了好几天,在阅读了许多教程文档和问题之后,我无法做到这一点。问题是我的django项目在docker容器中带有gunicorn和nginx没有针对我的网站的静态文件(404),但是具有针对管理页面的静态文件(这对我来说很奇怪)。这是我的配置:
FROM python:3
ENV PYTHONUNBUFFERED 1
ENV DJANGO_SETTINGS_MODULE=memes.settings_prod
RUN mkdir /code
WORKDIR /code
COPY . /code/
RUN pip install -r env_properties/prod/base.txt
RUN pip install -r env_properties/prod/prod.txt
RUN python manage.py collectstatic --noinput
RUN python manage.py migrate --noinput
FROM nginx
RUN adduser --system --no-create-home --shell /bin/false --group --disabled-login nginx
RUN apt-get update
RUN apt-get install nano -y
COPY env_properties/nginx/nginx.conf /etc/nginx/nginx.conf
RUN mkdir /code
RUN mkdir /code/static
WORKDIR /code
COPY ./static /code/
location /static {
autoindex on;
alias /code/static;
}
版本:“ 3”
服务:
web:
container_name: django_web
build:
context: .
dockerfile: ./env_properties/prod/Dockerfile
command: gunicorn -w 4 memes.wsgi:application -b 0.0.0.0:8000
environment:
- DJANGO_SETTINGS_MODULE=memes.settings_prod
volumes:
- .:/code
ports:
- '8000:8000'
nginx:
container_name: nginx_server_2
command: nginx -g 'daemon off;'
build:
context: .
dockerfile: env_properties/nginx/Dockerfile
depends_on:
- web
ports:
- "0.0.0.0:80:80"
tty: true
我转到我的页面,在管理页面上有
http://0.0.0.0/static/admin/css/base.css
请求网址
django_web
或nginx_server_2
容器中都不存在
(并加载)
在我的页面上,
http://0.0.0.0/static/memes_apps/style.css
请求网址
django和nginx容器中都存在/static/memes_apps/style.css
请告诉我我做错了。