Я использую Docker Compose вместе с этим Dockerfile, который копирует статическую папку в /static:
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install --upgrade pip && pip install -r requirements.txt
COPY static /static/
COPY . /code/
И в моих файлах настроек я использую:
if env == "dev":
DEBUG = True
else:
DEBUG = False
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_BROWSER_XSS_FILTER = True
X_FRAME_OPTIONS = "DENY"
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
]
STATICFILES_DIRS = [
# os.path.join(BASE_DIR, "static/"),
'/static'
]
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'
Статические файлы работают в dev, но когда я меняю env на prod, я начинаю получать ошибки 404.
Итак, вы видите проблему?
STATICFILES_DIRS
– это расположение ваших статических файлов внутри репозитория кода, откуда Django должен получить их дляcollectstatic
. Так что эта настройка неверна, она не должна быть/static
(обычно, если внутри «статической» папки в вашем приложении, вам вообще не нужно устанавливать это). Также покажите нам свою конфигурацию apache/nginx. - person dirkgroten   schedule 24.07.2019