• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Django static

Vlg

Green Team
02.11.2019
117
1
Hello, world!
У меня вопрос уровня новичка. Дело такое:
Решил на django 3.2.12 написать маленький website. Создал проект, приложение и html. В настройках settings.py указал все необходимые данные, включая выгрузку с папки static. В саму папку static поставил картинку.
Если запускать все локально (127.0.0.1), все работает как "Кока-Кола", но если выгрузить в сеть, то сервер не находит картинку. Я долго мучился и только потом вспомнил про функцию collectstatic. И картинка высветилась.
Вопрос следующий:
Это что получается, что при каждом пользователе выложивший свое изображение на website'e я буду обязан выполнять collectstatic??? Можно обойтись без этого?
Выгрузка изображения происходит не в models.py, а самым обычным способом:
HTML:
<!DOCTYPE HTML>
<HTML LANG="en">
{% load static %}
<Head>
</head>

<body>
<img src='{% static "fdog.jpg" %}'>
</body>
 
Я тут посидел и подумал. Понял, что я написал глупость. Когда пользователь выкладывает изображение оно не "вшивается" в шаблон, а содержится где-то и выгружается с помощью models. Логично. Также можно через js.
Ок, перезадам вопрос:
Для чего нужно collectstatic и почему локально изображения выкладываются без него, а на сервере он необходим? И можно ли обойтись без него?
 
Последнее редактирование:
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab