Как я могу получить доступ к моим статическим файлам из моего приложения 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.
У кого-нибудь есть предложения?