Как я могу получить доступ к моим статическим файлам из моего приложения Django?

У меня есть приложение Django, запущенное в контейнере Docker. Я использую Nginx в качестве производственного сервера с файлом docker-compose, объединяющим приложение, Nginx и Postgres в сеть контейнеров. Я настроил свой Dockerfile следующим образом:

FROM python:3.9.6-buster

ENV HOME=/home/app/
ENV APP_HOME=/home/app/web

RUN mkdir -p "${APP_HOME}/staticfiles"

# Create user
ENV PYTHONBUFFERED=1

WORKDIR $APP_HOME

COPY requirements.txt $APP_HOME

RUN pip install -r requirements.txt

COPY . $APP_HOME

, который, как вы можете видеть, устанавливает каталог staticfiles. Однако, следуя обычным принципам Django, моя файловая структура имеет вид /home/app/web/quote_checklist/static/quote_checklist, когда я исполняю в веб-контейнере.

Я использую следующее в моем settings.py

BASE_DIR = Path(__file__).resolve().parent.parent
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")

Когда я захожу на индексную страницу, я получаю ошибку, что каталог/файл /home/app/web/staticfiles/quote_checklist/css/base.css не найден, предполагая, что мое приложение ищет в этом каталоге staticfiles, в котором ничего нет. Я пробовал также удалить бит /staticfiles/ из моего статического тома, но тогда система просто ищет в /home/app/web/static/quote_checklist/css/base.css, а не следует нормальному пути Django, который должен искать в quot_checklist/static/quote_checklist/css/base.css.

У кого-нибудь есть предложения?

Вернуться на верх