fugro
@fugro
Начинающий кодер

Какой путь к статическим файлам в django?

Собираю свой джанго проект в докер-контейнер. Но статические файлы не находятся по прописаному пути.
Перед запуском команды python manage.py runserver выполняю команду python manage.py collectstatic
Все статические файлы собираются в папку static в корне проекта. Проверял, что они действительно там есть, заходя в через bash в докер-контейнер.

Вот код settings.py
# из этих папок собираются файлы в STATIC_ROOT 
STATICFILES_DIRS = ( 
    os.path.join(BASE_DIR, 'firstapp', 'static'),
    os.path.join(BASE_DIR, 'secondapp', 'static'),
    os.path.join(BASE_DIR, 'thirdapp', 'static'),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# доступ к файлам по урл
STATIC_URL = '/static/'


В html файлах прописан путь к статическим файлам
{% load static %}

{% load leaflet_tags %}
{% leaflet_css %}
{% leaflet_js %}

<link rel="stylesheet" type="text/css" href="{% static 'leaflet-groupedlayers/leaflet.groupedlayercontrol.min.css' %}">
<script type="text/javascript" src="{% static 'leaflet-groupedlayers/leaflet.groupedlayercontrol.min.js' %}"></script>


Dockerfile:
RUN mkdir /code/static
COPY . /code/
WORKDIR /code
RUN python manage.py collectstatic --no-input --clear
CMD python /code/manage.py runserver 0.0.0.0:8080


Файлы есть в докер-контейнере
root@0b3bf85acf08:/code/static# ls
admin  css  django_tables2  gis  js  leaflet  leaflet-groupedlayers  leaflet-routing


А вот что пишет в консоли после запроса
[15/Feb/2020 10:58:11] "GET /calc/ HTTP/1.1" 200 14586
[15/Feb/2020 10:58:11] "GET /static/leaflet/leaflet.js HTTP/1.1" 404 77
[15/Feb/2020 10:58:11] "GET /static/leaflet/leaflet.extras.js HTTP/1.1" 404 77
[15/Feb/2020 10:58:11] "GET /static/leaflet/leaflet.css HTTP/1.1" 404 77
[15/Feb/2020 10:58:12] "GET /static/leaflet/leaflet.extras.js HTTP/1.1" 404 77


Уже перепробовал много вариаций путей к статическим файлам.
Подскажите, плиз, где я допустил ошибку и какой путь указать к статическим файлам?
  • Вопрос задан
  • 85 просмотров
Решения вопроса 1
@bacon
runserver только для разработки, нормально умеет только статику админки подтягивать, самое простое решение, путь не в STATIC_ROOT, а в списке у STATICFILES_DIRS указать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы